home *** CD-ROM | disk | FTP | other *** search
MacBinary | 1994-03-10 | 20.6 KB | [TEXT/KAHL] |
open in:
MacOS 8.1
|
Win98
|
DOS
view JSON data
|
view as text
This file was processed as: MacBinary
(archive/macBinary).
You can browse this item here: GamePlay.c
Confidence | Program | Detection | Match Type | Support
|
---|
66%
| dexvert
| Compact Compressed (Unix) (archive/compact)
| ext
| Supported |
10%
| dexvert
| MacBinary (archive/macBinary)
| fallback
| Supported |
1%
| dexvert
| Text File (text/txt)
| fallback
| Supported |
100%
| file
| MacBinary II, inited, Thu Mar 10 09:57:59 1994, modified Thu Mar 10 09:57:59 1994, creator Think C, type ASCII, 20339 bytes "GamePlay.c" , at 0x4ff3 554 bytes resource
| default (weak)
| |
99%
| file
| data
| default
| |
74%
| TrID
| Macintosh plain text (MacBinary)
| default
| |
25%
| TrID
| MacBinary 2
| default (weak)
| |
100%
| siegfried
| fmt/1762 MacBinary (II)
| default
| |
100%
| lsar
| MacBinary
| default
|
|
id metadata |
---|
key | value |
---|
macFileType | [TEXT] |
macFileCreator | [KAHL] |
hex view+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 0a 47 61 6d 65 50 6c | 61 79 2e 63 00 00 00 00 |..GamePl|ay.c....|
|00000010| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000040| 00 54 45 58 54 4b 41 48 | 4c 01 00 00 00 00 00 00 |.TEXTKAH|L.......|
|00000050| 00 00 00 00 00 4f 73 00 | 00 02 2a a9 a4 e5 f7 a9 |.....Os.|..*.....|
|00000060| a4 e5 f7 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000070| 00 00 00 00 00 00 00 00 | 00 00 81 81 0f d1 00 00 |........|........|
|00000080| 2f 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |/*******|********|
|00000090| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000000a0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000000b0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000000c0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 0d 20 2a |********|*****. *|
|000000d0| 20 47 61 6d 65 50 6c 61 | 79 2e 63 0d 20 2a 0d 20 | GamePla|y.c. *. |
|000000e0| 2a 09 09 4f 76 65 72 61 | 6c 6c 20 47 61 6d 65 20 |*..Overa|ll Game |
|000000f0| 72 6f 75 74 69 6e 65 73 | 0d 20 2a 0d 20 2a 20 32 |routines|. *. * 2|
|00000100| 2f 37 2f 39 34 0d 20 2a | 09 09 55 70 64 61 74 65 |/7/94. *|..Update|
|00000110| 64 20 74 6f 20 77 6f 72 | 6b 20 6f 6e 20 31 32 20 |d to wor|k on 12 |
|00000120| 69 6e 63 68 20 28 35 31 | 32 78 33 38 34 29 20 6d |inch (51|2x384) m|
|00000130| 6f 6e 69 74 6f 72 73 20 | 61 6e 64 20 0d 20 2a 09 |onitors |and . *.|
|00000140| 09 74 6f 20 63 65 6e 74 | 65 72 20 70 72 6f 70 65 |.to cent|er prope|
|00000150| 72 6c 79 20 6f 6e 20 6d | 6f 6e 69 74 6f 72 73 20 |rly on m|onitors |
|00000160| 6c 61 72 67 65 72 20 74 | 68 61 6e 20 36 34 30 20 |larger t|han 640 |
|00000170| 78 20 34 38 30 0d 20 2a | 0d 20 2a 20 34 2f 32 38 |x 480. *|. * 4/28|
|00000180| 2f 39 33 20 2d 20 35 2f | 39 33 0d 20 2a 09 09 4f |/93 - 5/|93. *..O|
|00000190| 72 69 67 69 6e 61 6c 20 | 43 6f 64 65 20 57 72 69 |riginal |Code Wri|
|000001a0| 74 74 65 6e 0d 20 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |tten. **|********|
|000001b0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000001c0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000001d0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000001e0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000001f0| 2a 2a 2f 0d 20 0d 23 64 | 65 66 69 6e 65 20 53 50 |**/. .#d|efine SP|
|00000200| 52 49 54 45 4d 41 49 4e | 09 31 0d 23 69 6e 63 6c |RITEMAIN|.1.#incl|
|00000210| 75 64 65 20 22 43 54 6f | 61 73 74 2e 68 22 0d 23 |ude "CTo|ast.h".#|
|00000220| 69 6e 63 6c 75 64 65 20 | 22 6d 61 74 68 2e 68 22 |include |"math.h"|
|00000230| 0d 0d 2f 2f 20 47 61 6d | 65 20 49 6e 69 74 69 61 |..// Gam|e Initia|
|00000240| 6c 69 7a 61 74 69 6f 6e | 0d 2f 2f 0d 76 6f 69 64 |lization|.//.void|
|00000250| 20 49 6e 69 74 69 61 6c | 69 7a 65 47 61 6d 65 28 | Initial|izeGame(|
|00000260| 57 69 6e 64 6f 77 50 74 | 72 20 74 68 65 57 69 6e |WindowPt|r theWin|
|00000270| 29 0d 7b 0d 09 73 68 6f | 72 74 09 09 09 69 2c 6a |).{..sho|rt...i,j|
|00000280| 2c 6e 2c 62 3b 0d 09 47 | 44 48 61 6e 64 6c 65 09 |,n,b;..G|DHandle.|
|00000290| 09 67 44 65 76 69 63 65 | 3b 0d 09 50 74 72 09 09 |.gDevice|;..Ptr..|
|000002a0| 09 09 73 70 2c 64 70 2c | 63 70 3b 0d 09 48 61 6e |..sp,dp,|cp;..Han|
|000002b0| 64 6c 65 09 09 09 68 3b | 0d 09 4f 53 45 72 72 09 |dle...h;|..OSErr.|
|000002c0| 09 09 6f 65 3b 0d 09 47 | 44 48 61 6e 64 6c 65 09 |..oe;..G|DHandle.|
|000002d0| 09 63 75 72 44 65 76 69 | 63 65 3b 0d 0d 09 2f 2f |.curDevi|ce;...//|
|000002e0| 20 46 61 64 65 20 6f 75 | 74 20 74 68 65 20 73 63 | Fade ou|t the sc|
|000002f0| 72 65 65 6e 20 28 63 6f | 6d 6d 65 6e 74 20 74 68 |reen (co|mment th|
|00000300| 69 73 20 6f 75 74 20 69 | 66 20 79 6f 75 20 77 61 |is out i|f you wa|
|00000310| 6e 74 20 74 6f 20 75 73 | 65 20 64 65 62 75 67 67 |nt to us|e debugg|
|00000320| 65 72 29 0d 09 47 61 6d | 6d 61 46 61 64 65 4f 75 |er)..Gam|maFadeOu|
|00000330| 74 28 29 3b 0d 09 63 75 | 72 44 65 76 69 63 65 20 |t();..cu|rDevice |
|00000340| 3d 20 47 65 74 47 44 65 | 76 69 63 65 28 29 3b 0d |= GetGDe|vice();.|
|00000350| 0d 09 2f 2f 20 47 65 74 | 20 56 69 64 65 6f 20 50 |..// Get| Video P|
|00000360| 74 72 20 61 6e 64 20 44 | 69 6d 65 6e 73 69 6f 6e |tr and D|imension|
|00000370| 73 0d 09 67 56 69 64 65 | 6f 52 6f 77 42 79 74 65 |s..gVide|oRowByte|
|00000380| 73 20 3d 20 28 2a 28 2a | 63 75 72 44 65 76 69 63 |s = (*(*|curDevic|
|00000390| 65 29 2d 3e 67 64 50 4d | 61 70 29 2d 3e 72 6f 77 |e)->gdPM|ap)->row|
|000003a0| 42 79 74 65 73 20 26 20 | 30 78 33 46 46 46 3b 0d |Bytes & |0x3FFF;.|
|000003b0| 09 67 56 69 64 65 6f 4d | 65 6d 20 3d 20 28 2a 28 |.gVideoM|em = (*(|
|000003c0| 2a 63 75 72 44 65 76 69 | 63 65 29 2d 3e 67 64 50 |*curDevi|ce)->gdP|
|000003d0| 4d 61 70 29 2d 3e 62 61 | 73 65 41 64 64 72 3b 0d |Map)->ba|seAddr;.|
|000003e0| 0d 09 2f 2f 20 43 68 6f | 6f 73 65 20 62 65 74 77 |..// Cho|ose betw|
|000003f0| 65 65 6e 20 35 31 32 78 | 33 38 34 20 61 6e 64 20 |een 512x|384 and |
|00000400| 36 34 30 78 34 38 30 20 | 6d 6f 64 65 73 0d 09 2f |640x480 |modes../|
|00000410| 2f 0d 09 69 66 20 28 73 | 63 72 65 65 6e 42 69 74 |/..if (s|creenBit|
|00000420| 73 2e 62 6f 75 6e 64 73 | 2e 62 6f 74 74 6f 6d 20 |s.bounds|.bottom |
|00000430| 2d 20 73 63 72 65 65 6e | 42 69 74 73 2e 62 6f 75 |- screen|Bits.bou|
|00000440| 6e 64 73 2e 74 6f 70 20 | 3c 20 34 38 30 20 7c 7c |nds.top |< 480 |||
|00000450| 0d 09 09 73 63 72 65 65 | 6e 42 69 74 73 2e 62 6f |...scree|nBits.bo|
|00000460| 75 6e 64 73 2e 72 69 67 | 68 74 20 2d 20 73 63 72 |unds.rig|ht - scr|
|00000470| 65 65 6e 42 69 74 73 2e | 62 6f 75 6e 64 73 2e 6c |eenBits.|bounds.l|
|00000480| 65 66 74 20 3c 20 36 34 | 30 29 20 0d 09 7b 0d 09 |eft < 64|0) ..{..|
|00000490| 09 67 31 32 49 6e 63 68 | 4d 6f 64 65 20 3d 20 74 |.g12Inch|Mode = t|
|000004a0| 72 75 65 3b 0d 09 09 53 | 65 74 52 65 63 74 28 26 |rue;...S|etRect(&|
|000004b0| 67 4f 66 66 73 63 72 65 | 65 6e 52 65 63 74 2c 30 |gOffscre|enRect,0|
|000004c0| 2c 30 2c 35 31 32 2b 49 | 63 6f 6e 57 69 64 74 68 |,0,512+I|conWidth|
|000004d0| 2a 32 2c 33 38 34 2b 49 | 63 6f 6e 57 69 64 74 68 |*2,384+I|conWidth|
|000004e0| 2a 32 29 3b 0d 09 09 67 | 56 69 64 4f 66 66 73 65 |*2);...g|VidOffse|
|000004f0| 74 2e 68 20 3d 20 28 28 | 73 63 72 65 65 6e 42 69 |t.h = ((|screenBi|
|00000500| 74 73 2e 62 6f 75 6e 64 | 73 2e 72 69 67 68 74 20 |ts.bound|s.right |
|00000510| 2d 20 73 63 72 65 65 6e | 42 69 74 73 2e 62 6f 75 |- screen|Bits.bou|
|00000520| 6e 64 73 2e 6c 65 66 74 | 29 20 2d 20 35 31 32 29 |nds.left|) - 512)|
|00000530| 2f 32 3b 0d 09 09 67 56 | 69 64 4f 66 66 73 65 74 |/2;...gV|idOffset|
|00000540| 2e 76 20 3d 20 28 28 73 | 63 72 65 65 6e 42 69 74 |.v = ((s|creenBit|
|00000550| 73 2e 62 6f 75 6e 64 73 | 2e 62 6f 74 74 6f 6d 20 |s.bounds|.bottom |
|00000560| 2d 20 73 63 72 65 65 6e | 42 69 74 73 2e 62 6f 75 |- screen|Bits.bou|
|00000570| 6e 64 73 2e 74 6f 70 29 | 20 2d 20 33 38 34 29 2f |nds.top)| - 384)/|
|00000580| 32 3b 0d 09 7d 0d 09 65 | 6c 73 65 20 7b 0d 09 09 |2;..}..e|lse {...|
|00000590| 53 65 74 52 65 63 74 28 | 26 67 4f 66 66 73 63 72 |SetRect(|&gOffscr|
|000005a0| 65 65 6e 52 65 63 74 2c | 30 2c 30 2c 36 34 30 2b |eenRect,|0,0,640+|
|000005b0| 49 63 6f 6e 57 69 64 74 | 68 2a 32 2c 34 38 30 2b |IconWidt|h*2,480+|
|000005c0| 49 63 6f 6e 57 69 64 74 | 68 2a 32 29 3b 0d 09 09 |IconWidt|h*2);...|
|000005d0| 67 56 69 64 4f 66 66 73 | 65 74 2e 68 20 3d 20 28 |gVidOffs|et.h = (|
|000005e0| 28 73 63 72 65 65 6e 42 | 69 74 73 2e 62 6f 75 6e |(screenB|its.boun|
|000005f0| 64 73 2e 72 69 67 68 74 | 20 2d 20 73 63 72 65 65 |ds.right| - scree|
|00000600| 6e 42 69 74 73 2e 62 6f | 75 6e 64 73 2e 6c 65 66 |nBits.bo|unds.lef|
|00000610| 74 29 20 2d 20 36 34 30 | 29 2f 32 3b 0d 09 09 67 |t) - 640|)/2;...g|
|00000620| 56 69 64 4f 66 66 73 65 | 74 2e 76 20 3d 20 28 28 |VidOffse|t.v = ((|
|00000630| 73 63 72 65 65 6e 42 69 | 74 73 2e 62 6f 75 6e 64 |screenBi|ts.bound|
|00000640| 73 2e 62 6f 74 74 6f 6d | 20 2d 20 73 63 72 65 65 |s.bottom| - scree|
|00000650| 6e 42 69 74 73 2e 62 6f | 75 6e 64 73 2e 74 6f 70 |nBits.bo|unds.top|
|00000660| 29 20 2d 20 34 38 30 29 | 2f 32 3b 0d 09 7d 0d 09 |) - 480)|/2;..}..|
|00000670| 0d 09 2f 2f 20 43 61 6c | 63 20 74 68 65 20 63 65 |..// Cal|c the ce|
|00000680| 6e 74 65 72 20 70 6f 69 | 6e 74 0d 09 67 43 65 6e |nter poi|nt..gCen|
|00000690| 74 65 72 50 2e 68 20 3d | 20 28 67 4f 66 66 73 63 |terP.h =| (gOffsc|
|000006a0| 72 65 65 6e 52 65 63 74 | 2e 72 69 67 68 74 20 2d |reenRect|.right -|
|000006b0| 20 67 4f 66 66 73 63 72 | 65 65 6e 52 65 63 74 2e | gOffscr|eenRect.|
|000006c0| 6c 65 66 74 29 20 2f 20 | 32 3b 0d 09 67 43 65 6e |left) / |2;..gCen|
|000006d0| 74 65 72 50 2e 76 20 3d | 20 28 67 4f 66 66 73 63 |terP.v =| (gOffsc|
|000006e0| 72 65 65 6e 52 65 63 74 | 2e 62 6f 74 74 6f 6d 20 |reenRect|.bottom |
|000006f0| 2d 20 67 4f 66 66 73 63 | 72 65 65 6e 52 65 63 74 |- gOffsc|reenRect|
|00000700| 2e 74 6f 70 29 20 2f 20 | 32 3b 0d 0d 09 2f 2f 20 |.top) / |2;...// |
|00000710| 41 6c 6c 6f 63 61 74 65 | 20 61 6e 20 6f 66 66 73 |Allocate| an offs|
|00000720| 63 72 65 65 6e 20 70 69 | 78 65 6c 20 6d 61 70 0d |creen pi|xel map.|
|00000730| 09 2f 2f 0d 09 69 66 20 | 28 28 6f 65 20 3d 20 4e |.//..if |((oe = N|
|00000740| 65 77 47 57 6f 72 6c 64 | 28 26 67 4f 66 66 53 63 |ewGWorld|(&gOffSc|
|00000750| 72 65 65 6e 2c 30 2c 26 | 67 4f 66 66 73 63 72 65 |reen,0,&|gOffscre|
|00000760| 65 6e 52 65 63 74 2c 4e | 55 4c 4c 2c 4e 55 4c 4c |enRect,N|ULL,NULL|
|00000770| 2c 30 29 29 20 21 3d 20 | 6e 6f 45 72 72 29 20 7b |,0)) != |noErr) {|
|00000780| 0d 09 09 44 65 62 75 67 | 53 74 72 28 22 5c 70 4f |...Debug|Str("\pO|
|00000790| 79 21 22 29 3b 0d 09 09 | 72 65 74 75 72 6e 3b 0d |y!");...|return;.|
|000007a0| 09 7d 0d 09 67 50 69 78 | 4d 61 70 20 3d 20 47 65 |.}..gPix|Map = Ge|
|000007b0| 74 47 57 6f 72 6c 64 50 | 69 78 4d 61 70 28 67 4f |tGWorldP|ixMap(gO|
|000007c0| 66 66 53 63 72 65 65 6e | 29 3b 0d 09 4c 6f 63 6b |ffScreen|);..Lock|
|000007d0| 50 69 78 65 6c 73 28 67 | 50 69 78 4d 61 70 29 3b |Pixels(g|PixMap);|
|000007e0| 0d 0d 09 67 53 63 72 65 | 65 6e 52 6f 77 42 79 74 |...gScre|enRowByt|
|000007f0| 65 73 20 3d 20 28 2a 67 | 50 69 78 4d 61 70 29 2d |es = (*g|PixMap)-|
|00000800| 3e 72 6f 77 42 79 74 65 | 73 20 26 20 30 78 33 46 |>rowByte|s & 0x3F|
|00000810| 46 46 3b 0d 09 67 53 63 | 72 65 65 6e 4d 65 6d 20 |FF;..gSc|reenMem |
|00000820| 3d 20 28 2a 67 50 69 78 | 4d 61 70 29 2d 3e 62 61 |= (*gPix|Map)->ba|
|00000830| 73 65 41 64 64 72 3b 0d | 0d 09 67 50 6c 61 79 52 |seAddr;.|..gPlayR|
|00000840| 65 63 74 20 3d 20 67 4f | 66 66 73 63 72 65 65 6e |ect = gO|ffscreen|
|00000850| 52 65 63 74 3b 0d 09 67 | 50 6c 61 79 52 65 63 74 |Rect;..g|PlayRect|
|00000860| 2e 72 69 67 68 74 20 2d | 3d 20 49 63 6f 6e 57 69 |.right -|= IconWi|
|00000870| 64 74 68 3b 0d 09 67 50 | 6c 61 79 52 65 63 74 2e |dth;..gP|layRect.|
|00000880| 62 6f 74 74 6f 6d 20 2d | 3d 20 49 63 6f 6e 48 65 |bottom -|= IconHe|
|00000890| 69 67 68 74 3b 0d 0d 09 | 2f 2f 20 4c 6f 61 64 20 |ight;...|// Load |
|000008a0| 55 73 65 72 20 50 72 65 | 66 65 72 65 6e 63 65 73 |User Pre|ferences|
|000008b0| 20 2d 20 53 6f 75 6e 64 | 20 56 6f 6c 75 6d 65 2c | - Sound| Volume,|
|000008c0| 20 4b 65 79 73 0d 09 4c | 6f 61 64 50 72 65 66 65 | Keys..L|oadPrefe|
|000008d0| 72 65 6e 63 65 73 28 29 | 3b 09 2f 2f 20 44 6f 20 |rences()|;.// Do |
|000008e0| 74 68 69 73 20 62 65 66 | 6f 72 65 20 6c 6f 61 64 |this bef|ore load|
|000008f0| 69 6e 67 20 73 6f 75 6e | 64 73 20 2d 20 68 61 73 |ing soun|ds - has|
|00000900| 20 76 6f 6c 75 6d 65 20 | 73 65 74 74 69 6e 67 0d | volume |setting.|
|00000910| 0d 09 2f 2f 20 4c 6f 61 | 64 20 74 68 65 20 53 6f |..// Loa|d the So|
|00000920| 75 6e 64 73 0d 09 49 6e | 69 74 53 6f 75 6e 64 73 |unds..In|itSounds|
|00000930| 28 29 3b 0d 0d 09 2f 2f | 20 48 69 64 65 20 4d 65 |();...//| Hide Me|
|00000940| 6e 75 62 61 72 0d 09 6f | 6c 64 4d 42 61 72 48 65 |nubar..o|ldMBarHe|
|00000950| 69 67 68 74 20 3d 20 4d | 42 61 72 48 65 69 67 68 |ight = M|BarHeigh|
|00000960| 74 3b 0d 09 4d 42 61 72 | 48 65 69 67 68 74 20 3d |t;..MBar|Height =|
|00000970| 20 30 3b 0d 09 52 65 63 | 74 52 67 6e 28 74 68 65 | 0;..Rec|tRgn(the|
|00000980| 57 69 6e 2d 3e 76 69 73 | 52 67 6e 2c 26 73 63 72 |Win->vis|Rgn,&scr|
|00000990| 65 65 6e 42 69 74 73 2e | 62 6f 75 6e 64 73 29 3b |eenBits.|bounds);|
|000009a0| 0d 0d 09 2f 2f 20 50 61 | 69 6e 74 20 53 74 61 72 |...// Pa|int Star|
|000009b0| 74 75 70 20 53 63 72 65 | 65 6e 2c 20 46 61 64 65 |tup Scre|en, Fade|
|000009c0| 20 49 6e 0d 09 50 61 69 | 6e 74 52 65 63 74 28 26 | In..Pai|ntRect(&|
|000009d0| 74 68 65 57 69 6e 2d 3e | 70 6f 72 74 52 65 63 74 |theWin->|portRect|
|000009e0| 29 3b 0d 09 53 74 61 72 | 74 75 70 53 63 72 65 65 |);..Star|tupScree|
|000009f0| 6e 28 29 3b 0d 09 47 61 | 6d 6d 61 46 61 64 65 49 |n();..Ga|mmaFadeI|
|00000a00| 6e 28 29 3b 0d 0d 09 2f | 2f 20 44 72 61 77 20 53 |n();.../|/ Draw S|
|00000a10| 74 61 74 75 73 20 42 61 | 72 20 2d 20 75 73 65 64 |tatus Ba|r - used|
|00000a20| 20 74 6f 20 73 68 6f 77 | 20 69 6e 69 74 69 61 6c | to show| initial|
|00000a30| 69 7a 61 74 69 6f 6e 20 | 70 72 6f 67 72 65 73 73 |ization |progress|
|00000a40| 0d 09 44 72 61 77 53 74 | 61 74 75 73 42 61 72 28 |..DrawSt|atusBar(|
|00000a50| 30 2c 31 30 30 29 3b 0d | 0d 09 2f 2f 20 52 61 6e |0,100);.|..// Ran|
|00000a60| 64 6f 6d 69 7a 65 20 74 | 68 65 20 52 61 6e 64 6f |domize t|he Rando|
|00000a70| 6d 20 4e 75 6d 62 65 72 | 20 47 65 6e 65 72 61 74 |m Number| Generat|
|00000a80| 6f 72 0d 09 47 65 74 44 | 61 74 65 54 69 6d 65 28 |or..GetD|ateTime(|
|00000a90| 28 75 6e 73 69 67 6e 65 | 64 20 6c 6f 6e 67 20 2a |(unsigne|d long *|
|00000aa0| 29 20 26 72 61 6e 64 53 | 65 65 64 29 3b 0d 0d 09 |) &randS|eed);...|
|00000ab0| 2f 2f 20 50 6c 61 79 20 | 74 68 65 20 73 74 61 72 |// Play |the star|
|00000ac0| 74 75 70 20 73 6f 75 6e | 64 20 2d 20 6e 6f 74 65 |tup soun|d - note|
|00000ad0| 3a 20 69 27 6d 20 67 65 | 74 74 69 6e 67 20 61 20 |: i'm ge|tting a |
|00000ae0| 73 6f 75 6e 64 20 67 6c | 69 74 63 68 0d 09 2f 2f |sound gl|itch..//|
|00000af0| 20 77 68 65 6e 20 73 6f | 75 6e 64 20 6d 61 6e 61 | when so|und mana|
|00000b00| 67 65 72 20 33 2e 30 20 | 69 73 20 75 73 65 64 0d |ger 3.0 |is used.|
|00000b10| 09 50 6c 61 79 53 6f 75 | 6e 64 28 53 5f 53 74 61 |.PlaySou|nd(S_Sta|
|00000b20| 72 74 75 70 2c 20 34 29 | 3b 0d 0d 09 2f 2f 20 43 |rtup, 4)|;...// C|
|00000b30| 61 6c 63 20 64 69 6d 65 | 6e 73 69 6f 6e 73 20 6f |alc dime|nsions o|
|00000b40| 66 20 70 6c 61 79 20 66 | 69 65 6c 64 0d 09 67 50 |f play f|ield..gP|
|00000b50| 6c 61 79 57 69 64 74 68 | 20 3d 20 67 50 6c 61 79 |layWidth| = gPlay|
|00000b60| 52 65 63 74 2e 72 69 67 | 68 74 20 2d 20 67 50 6c |Rect.rig|ht - gPl|
|00000b70| 61 79 52 65 63 74 2e 6c | 65 66 74 3b 0d 09 67 50 |ayRect.l|eft;..gP|
|00000b80| 6c 61 79 48 65 69 67 68 | 74 20 3d 20 67 50 6c 61 |layHeigh|t = gPla|
|00000b90| 79 52 65 63 74 2e 62 6f | 74 74 6f 6d 20 2d 20 67 |yRect.bo|ttom - g|
|00000ba0| 50 6c 61 79 52 65 63 74 | 2e 74 6f 70 3b 0d 0d 09 |PlayRect|.top;...|
|00000bb0| 2f 2f 20 41 6c 6c 6f 63 | 61 74 65 20 74 61 62 6c |// Alloc|ate tabl|
|00000bc0| 65 73 0d 09 73 6d 54 61 | 62 6c 65 20 3d 20 28 53 |es..smTa|ble = (S|
|00000bd0| 61 76 65 4d 61 70 52 65 | 63 6f 72 64 20 2a 29 20 |aveMapRe|cord *) |
|00000be0| 4e 65 77 50 74 72 43 6c | 65 61 72 28 73 69 7a 65 |NewPtrCl|ear(size|
|00000bf0| 6f 66 28 53 61 76 65 4d | 61 70 52 65 63 6f 72 64 |of(SaveM|apRecord|
|00000c00| 29 20 2a 20 4d 61 78 53 | 61 76 65 4d 61 70 73 29 |) * MaxS|aveMaps)|
|00000c10| 3b 0d 09 69 66 20 28 73 | 6d 54 61 62 6c 65 20 3d |;..if (s|mTable =|
|00000c20| 3d 20 4e 55 4c 4c 29 0d | 09 09 44 65 62 75 67 53 |= NULL).|..DebugS|
|00000c30| 74 72 28 22 5c 70 4f 75 | 74 20 6f 66 20 4d 65 6d |tr("\pOu|t of Mem|
|00000c40| 22 29 3b 0d 0d 09 73 54 | 61 62 6c 65 20 3d 20 28 |");...sT|able = (|
|00000c50| 53 70 72 69 74 65 49 6e | 73 74 61 6e 63 65 20 2a |SpriteIn|stance *|
|00000c60| 29 20 4e 65 77 50 74 72 | 43 6c 65 61 72 28 73 69 |) NewPtr|Clear(si|
|00000c70| 7a 65 6f 66 28 53 70 72 | 69 74 65 49 6e 73 74 61 |zeof(Spr|iteInsta|
|00000c80| 6e 63 65 29 20 2a 20 4d | 61 78 53 70 72 69 74 65 |nce) * M|axSprite|
|00000c90| 73 29 3b 0d 09 69 66 20 | 28 73 54 61 62 6c 65 20 |s);..if |(sTable |
|00000ca0| 3d 3d 20 4e 55 4c 4c 29 | 0d 09 09 44 65 62 75 67 |== NULL)|...Debug|
|00000cb0| 53 74 72 28 22 5c 70 4f | 75 74 20 6f 66 20 4d 65 |Str("\pO|ut of Me|
|00000cc0| 6d 22 29 3b 0d 0d 09 2f | 2f 20 4c 6f 61 64 20 69 |m");.../|/ Load i|
|00000cd0| 6e 20 53 70 72 69 74 65 | 73 0d 09 2f 2f 0d 09 66 |n Sprite|s..//..f|
|00000ce0| 6f 72 20 28 69 20 3d 20 | 30 3b 20 69 20 3c 20 4e |or (i = |0; i < N|
|00000cf0| 62 72 53 70 72 69 74 65 | 73 3b 20 2b 2b 69 29 20 |brSprite|s; ++i) |
|00000d00| 7b 0d 09 09 44 72 61 77 | 53 74 61 74 75 73 42 61 |{...Draw|StatusBa|
|00000d10| 72 28 69 2c 4e 62 72 53 | 70 72 69 74 65 73 2b 31 |r(i,NbrS|prites+1|
|00000d20| 29 3b 0d 0d 09 09 69 66 | 20 28 73 44 65 66 5b 69 |);....if| (sDef[i|
|00000d30| 5d 2e 66 69 72 73 74 49 | 63 6f 6e 49 44 29 20 7b |].firstI|conID) {|
|00000d40| 0d 09 09 09 2f 2f 20 41 | 6c 6c 6f 63 61 74 65 20 |....// A|llocate |
|00000d50| 50 69 78 20 4d 61 70 73 | 0d 09 09 09 73 44 65 66 |Pix Maps|....sDef|
|00000d60| 5b 69 5d 2e 63 6f 6c 6f | 72 4d 61 70 73 20 3d 20 |[i].colo|rMaps = |
|00000d70| 4e 65 77 50 74 72 43 6c | 65 61 72 28 43 6f 6c 6f |NewPtrCl|ear(Colo|
|00000d80| 72 4d 61 70 53 69 7a 65 | 20 2a 20 73 44 65 66 5b |rMapSize| * sDef[|
|00000d90| 69 5d 2e 6e 62 72 49 63 | 6f 6e 73 29 3b 0d 09 09 |i].nbrIc|ons);...|
|00000da0| 09 69 66 20 28 73 44 65 | 66 5b 69 5d 2e 63 6f 6c |.if (sDe|f[i].col|
|00000db0| 6f 72 4d 61 70 73 20 3d | 3d 20 4e 55 4c 4c 29 0d |orMaps =|= NULL).|
|00000dc0| 09 09 09 09 44 65 62 75 | 67 53 74 72 28 22 5c 70 |....Debu|gStr("\p|
|00000dd0| 4f 75 74 20 6f 66 20 4d | 65 6d 22 29 3b 0d 09 09 |Out of M|em");...|
|00000de0| 09 73 44 65 66 5b 69 5d | 2e 6d 61 73 6b 4d 61 70 |.sDef[i]|.maskMap|
|00000df0| 73 20 3d 20 4e 65 77 50 | 74 72 43 6c 65 61 72 28 |s = NewP|trClear(|
|00000e00| 43 6f 6c 6f 72 4d 61 70 | 53 69 7a 65 20 2a 20 20 |ColorMap|Size * |
|00000e10| 73 44 65 66 5b 69 5d 2e | 6e 62 72 49 63 6f 6e 73 |sDef[i].|nbrIcons|
|00000e20| 29 3b 0d 09 09 09 69 66 | 20 28 73 44 65 66 5b 69 |);....if| (sDef[i|
|00000e30| 5d 2e 6d 61 73 6b 4d 61 | 70 73 20 3d 3d 20 4e 55 |].maskMa|ps == NU|
|00000e40| 4c 4c 29 0d 09 09 09 09 | 44 65 62 75 67 53 74 72 |LL).....|DebugStr|
|00000e50| 28 22 5c 70 4f 75 74 20 | 6f 66 20 4d 65 6d 22 29 |("\pOut |of Mem")|
|00000e60| 3b 0d 09 0d 09 09 09 2f | 2f 20 4c 6f 61 64 20 49 |;....../|/ Load I|
|00000e70| 63 6f 6e 73 0d 09 09 09 | 66 6f 72 20 28 6a 20 3d |cons....|for (j =|
|00000e80| 20 30 3b 20 6a 20 3c 20 | 73 44 65 66 5b 69 5d 2e | 0; j < |sDef[i].|
|00000e90| 6e 62 72 49 63 6f 6e 73 | 3b 20 2b 2b 6a 29 20 7b |nbrIcons|; ++j) {|
|00000ea0| 0d 09 0d 09 09 09 09 2f | 2f 20 47 65 74 20 43 6f |......./|/ Get Co|
|00000eb0| 6c 6f 72 20 53 70 72 69 | 74 65 20 50 69 63 74 75 |lor Spri|te Pictu|
|00000ec0| 72 65 0d 09 09 09 09 68 | 20 3d 20 47 65 74 52 65 |re.....h| = GetRe|
|00000ed0| 73 6f 75 72 63 65 28 27 | 69 63 6c 38 27 2c 73 44 |source('|icl8',sD|
|00000ee0| 65 66 5b 69 5d 2e 66 69 | 72 73 74 49 63 6f 6e 49 |ef[i].fi|rstIconI|
|00000ef0| 44 2b 6a 29 3b 0d 09 09 | 09 09 42 6c 6f 63 6b 4d |D+j);...|..BlockM|
|00000f00| 6f 76 65 28 2a 68 2c 73 | 44 65 66 5b 69 5d 2e 63 |ove(*h,s|Def[i].c|
|00000f10| 6f 6c 6f 72 4d 61 70 73 | 20 2b 20 41 6e 69 46 72 |olorMaps| + AniFr|
|00000f20| 61 6d 65 49 6e 64 65 78 | 28 6a 29 2c 20 43 6f 6c |ameIndex|(j), Col|
|00000f30| 6f 72 4d 61 70 53 69 7a | 65 29 3b 0d 09 09 09 09 |orMapSiz|e);.....|
|00000f40| 52 65 6c 65 61 73 65 52 | 65 73 6f 75 72 63 65 28 |ReleaseR|esource(|
|00000f50| 68 29 3b 0d 09 0d 09 09 | 09 09 2f 2f 20 47 65 74 |h);.....|..// Get|
|00000f60| 20 4d 61 73 6b 2c 20 63 | 6f 6e 76 65 72 74 20 74 | Mask, c|onvert t|
|00000f70| 6f 20 38 20 62 69 74 2c | 20 63 6c 65 61 72 20 75 |o 8 bit,| clear u|
|00000f80| 6e 6d 61 73 6b 65 64 20 | 63 6f 6c 6f 72 73 20 69 |nmasked |colors i|
|00000f90| 6e 0d 09 09 09 09 2f 2f | 20 73 70 72 69 74 65 0d |n.....//| sprite.|
|00000fa0| 09 09 09 09 68 20 3d 20 | 47 65 74 52 65 73 6f 75 |....h = |GetResou|
|00000fb0| 72 63 65 28 27 49 43 4e | 23 27 2c 73 44 65 66 5b |rce('ICN|#',sDef[|
|00000fc0| 69 5d 2e 66 69 72 73 74 | 49 63 6f 6e 49 44 2b 6a |i].first|IconID+j|
|00000fd0| 29 3b 0d 09 09 09 09 73 | 70 20 3d 20 2a 68 20 2b |);.....s|p = *h +|
|00000fe0| 20 4d 61 73 6b 4d 61 70 | 53 69 7a 65 3b 0d 09 09 | MaskMap|Size;...|
|00000ff0| 09 09 64 70 20 3d 20 73 | 44 65 66 5b 69 5d 2e 6d |..dp = s|Def[i].m|
|00001000| 61 73 6b 4d 61 70 73 20 | 2b 20 41 6e 69 46 72 61 |askMaps |+ AniFra|
|00001010| 6d 65 49 6e 64 65 78 28 | 6a 29 3b 0d 09 09 09 09 |meIndex(|j);.....|
|00001020| 63 70 20 3d 20 73 44 65 | 66 5b 69 5d 2e 63 6f 6c |cp = sDe|f[i].col|
|00001030| 6f 72 4d 61 70 73 20 2b | 20 41 6e 69 46 72 61 6d |orMaps +| AniFram|
|00001040| 65 49 6e 64 65 78 28 6a | 29 3b 0d 09 09 09 09 62 |eIndex(j|);.....b|
|00001050| 20 3d 20 30 78 38 30 3b | 0d 09 09 09 09 66 6f 72 | = 0x80;|.....for|
|00001060| 20 28 6e 20 3d 20 30 3b | 20 6e 20 3c 20 43 6f 6c | (n = 0;| n < Col|
|00001070| 6f 72 4d 61 70 53 69 7a | 65 3b 20 2b 2b 6e 29 20 |orMapSiz|e; ++n) |
|00001080| 7b 0d 09 09 09 09 09 69 | 66 20 28 28 2a 73 70 20 |{......i|f ((*sp |
|00001090| 26 20 62 29 20 3e 20 30 | 29 20 7b 0d 09 09 09 09 |& b) > 0|) {.....|
|000010a0| 09 09 2a 64 70 20 3d 20 | 30 3b 0d 09 09 09 09 09 |..*dp = |0;......|
|000010b0| 7d 0d 09 09 09 09 09 65 | 6c 73 65 20 7b 0d 09 09 |}......e|lse {...|
|000010c0| 09 09 09 09 2a 64 70 20 | 3d 20 30 78 46 46 3b 0d |....*dp |= 0xFF;.|
|000010d0| 09 09 09 09 09 09 2a 63 | 70 20 3d 20 30 3b 0d 09 |......*c|p = 0;..|
|000010e0| 09 09 09 09 7d 0d 09 09 | 09 09 09 2b 2b 64 70 3b |....}...|...++dp;|
|000010f0| 0d 09 09 09 09 09 2b 2b | 63 70 3b 0d 09 09 09 09 |......++|cp;.....|
|00001100| 09 62 20 3e 3e 3d 20 31 | 3b 0d 09 09 09 09 09 69 |.b >>= 1|;......i|
|00001110| 66 20 28 62 20 3d 3d 20 | 30 29 20 7b 0d 09 09 09 |f (b == |0) {....|
|00001120| 09 09 09 62 20 3d 20 30 | 78 38 30 3b 0d 09 09 09 |...b = 0|x80;....|
|00001130| 09 09 09 2b 2b 73 70 3b | 0d 09 09 09 09 09 7d 0d |...++sp;|......}.|
|00001140| 09 09 09 09 7d 0d 09 09 | 09 09 52 65 6c 65 61 73 |....}...|..Releas|
|00001150| 65 52 65 73 6f 75 72 63 | 65 28 68 29 3b 0d 09 09 |eResourc|e(h);...|
|00001160| 09 7d 0d 09 09 7d 0d 09 | 7d 0d 09 44 72 61 77 53 |.}...}..|}..DrawS|
|00001170| 74 61 74 75 73 42 61 72 | 28 4e 62 72 53 70 72 69 |tatusBar|(NbrSpri|
|00001180| 74 65 73 2c 4e 62 72 53 | 70 72 69 74 65 73 2b 31 |tes,NbrS|prites+1|
|00001190| 29 3b 0d 0d 09 2f 2f 20 | 4c 6f 61 64 20 54 6f 70 |);...// |Load Top|
|000011a0| 20 53 63 6f 72 65 73 0d | 09 4c 6f 61 64 54 6f 70 | Scores.|.LoadTop|
|000011b0| 53 63 6f 72 65 73 28 29 | 3b 0d 09 44 72 61 77 53 |Scores()|;..DrawS|
|000011c0| 74 61 74 75 73 42 61 72 | 28 4e 62 72 53 70 72 69 |tatusBar|(NbrSpri|
|000011d0| 74 65 73 2b 31 2c 4e 62 | 72 53 70 72 69 74 65 73 |tes+1,Nb|rSprites|
|000011e0| 2b 31 29 3b 0d 09 0d 09 | 53 65 74 50 6f 72 74 28 |+1);....|SetPort(|
|000011f0| 74 68 65 57 69 6e 29 3b | 0d 7d 0d 0d 2f 2f 20 43 |theWin);|.}..// C|
|00001200| 6c 65 61 6e 55 70 20 62 | 65 66 6f 72 65 20 71 75 |leanUp b|efore qu|
|00001210| 69 74 74 69 6e 67 0d 2f | 2f 0d 76 6f 69 64 20 43 |itting./|/.void C|
|00001220| 6c 65 61 6e 55 70 28 76 | 6f 69 64 29 0d 7b 0d 09 |leanUp(v|oid).{..|
|00001230| 45 6e 64 53 6f 75 6e 64 | 73 28 29 3b 0d 09 53 68 |EndSound|s();..Sh|
|00001240| 6f 77 43 75 72 73 6f 72 | 28 29 3b 0d 09 4d 42 61 |owCursor|();..MBa|
|00001250| 72 48 65 69 67 68 74 20 | 3d 20 6f 6c 64 4d 42 61 |rHeight |= oldMBa|
|00001260| 72 48 65 69 67 68 74 3b | 0d 09 43 6c 6f 73 65 52 |rHeight;|..CloseR|
|00001270| 65 73 46 69 6c 65 28 67 | 52 65 73 46 69 6c 65 29 |esFile(g|ResFile)|
|00001280| 3b 0d 7d 0d 0d 76 6f 69 | 64 20 44 72 61 77 53 74 |;.}..voi|d DrawSt|
|00001290| 61 74 75 73 42 61 72 28 | 73 68 6f 72 74 20 63 75 |atusBar(|short cu|
|000012a0| 72 4c 65 76 65 6c 2c 20 | 73 68 6f 72 74 20 6d 61 |rLevel, |short ma|
|000012b0| 78 4c 65 76 65 6c 29 0d | 7b 0d 09 43 47 72 61 66 |xLevel).|{..CGraf|
|000012c0| 50 74 72 09 09 63 75 72 | 50 6f 72 74 3b 0d 09 47 |Ptr..cur|Port;..G|
|000012d0| 44 48 61 6e 64 6c 65 09 | 09 63 75 72 44 65 76 69 |DHandle.|.curDevi|
|000012e0| 63 65 3b 0d 09 52 65 63 | 74 09 09 09 72 2c 72 32 |ce;..Rec|t...r,r2|
|000012f0| 3b 0d 09 52 47 42 43 6f | 6c 6f 72 09 09 73 61 76 |;..RGBCo|lor..sav|
|00001300| 65 43 6f 6c 6f 72 2c 66 | 6f 72 65 43 6f 6c 6f 72 |eColor,f|oreColor|
|00001310| 3b 0d 0d 09 47 65 74 47 | 57 6f 72 6c 64 28 26 63 |;...GetG|World(&c|
|00001320| 75 72 50 6f 72 74 2c 26 | 63 75 72 44 65 76 69 63 |urPort,&|curDevic|
|00001330| 65 29 3b 0d 09 53 65 74 | 47 57 6f 72 6c 64 28 67 |e);..Set|GWorld(g|
|00001340| 4f 66 66 53 63 72 65 65 | 6e 2c 4e 55 4c 4c 29 3b |OffScree|n,NULL);|
|00001350| 0d 0d 09 53 65 74 52 65 | 63 74 28 26 72 2c 30 2c |...SetRe|ct(&r,0,|
|00001360| 30 2c 34 31 32 2c 32 29 | 3b 0d 0d 09 2f 2f 20 50 |0,412,2)|;...// P|
|00001370| 6f 73 69 74 69 6f 6e 20 | 77 69 74 68 69 6e 20 35 |osition |within 5|
|00001380| 31 32 78 33 38 34 20 52 | 65 63 74 61 6e 67 6c 65 |12x384 R|ectangle|
|00001390| 0d 09 4f 66 66 73 65 74 | 52 65 63 74 28 26 72 2c |..Offset|Rect(&r,|
|000013a0| 28 35 31 32 2d 34 31 32 | 29 2f 32 2c 33 38 34 2d |(512-412|)/2,384-|
|000013b0| 38 29 3b 0d 0d 09 2f 2f | 20 50 6f 73 69 74 69 6f |8);...//| Positio|
|000013c0| 6e 20 77 69 74 68 69 6e | 20 6f 66 66 73 63 72 65 |n within| offscre|
|000013d0| 65 6e 20 76 69 64 65 6f | 20 61 72 65 61 20 28 77 |en video| area (w|
|000013e0| 68 69 63 68 20 69 73 20 | 73 63 61 6c 65 64 20 74 |hich is |scaled t|
|000013f0| 6f 20 6d 6f 6e 69 74 6f | 72 20 73 69 7a 65 29 0d |o monito|r size).|
|00001400| 09 2f 2f 20 42 75 74 20 | 6d 61 78 20 36 34 30 20 |.// But |max 640 |
|00001410| 78 20 34 38 30 0d 09 4f | 66 66 73 65 74 52 65 63 |x 480..O|ffsetRec|
|00001420| 74 28 26 72 2c 28 67 4f | 66 66 53 63 72 65 65 6e |t(&r,(gO|ffScreen|
|00001430| 2d 3e 70 6f 72 74 52 65 | 63 74 2e 72 69 67 68 74 |->portRe|ct.right|
|00001440| 20 2d 20 35 31 32 29 2f | 32 2c 0d 09 09 09 09 20 | - 512)/|2,..... |
|00001450| 20 28 67 4f 66 66 53 63 | 72 65 65 6e 2d 3e 70 6f | (gOffSc|reen->po|
|00001460| 72 74 52 65 63 74 2e 62 | 6f 74 74 6f 6d 20 2d 20 |rtRect.b|ottom - |
|00001470| 33 38 34 29 2f 32 29 3b | 0d 0d 09 47 65 74 46 6f |384)/2);|...GetFo|
|00001480| 72 65 43 6f 6c 6f 72 28 | 26 73 61 76 65 43 6f 6c |reColor(|&saveCol|
|00001490| 6f 72 29 3b 0d 09 66 6f | 72 65 43 6f 6c 6f 72 2e |or);..fo|reColor.|
|000014a0| 72 65 64 20 3d 20 30 78 | 30 30 30 30 3b 0d 09 66 |red = 0x|0000;..f|
|000014b0| 6f 72 65 43 6f 6c 6f 72 | 2e 67 72 65 65 6e 20 3d |oreColor|.green =|
|000014c0| 20 30 78 39 39 39 39 3b | 0d 09 66 6f 72 65 43 6f | 0x9999;|..foreCo|
|000014d0| 6c 6f 72 2e 62 6c 75 65 | 20 3d 20 30 78 43 43 43 |lor.blue| = 0xCCC|
|000014e0| 43 3b 0d 09 52 47 42 46 | 6f 72 65 43 6f 6c 6f 72 |C;..RGBF|oreColor|
|000014f0| 28 26 66 6f 72 65 43 6f | 6c 6f 72 29 3b 0d 09 50 |(&foreCo|lor);..P|
|00001500| 61 69 6e 74 52 65 63 74 | 28 26 72 29 3b 0d 09 72 |aintRect|(&r);..r|
|00001510| 32 20 3d 20 72 3b 0d 09 | 72 32 2e 72 69 67 68 74 |2 = r;..|r2.right|
|00001520| 20 2d 3d 20 28 72 32 2e | 72 69 67 68 74 2d 72 32 | -= (r2.|right-r2|
|00001530| 2e 6c 65 66 74 29 2d 28 | 28 28 72 32 2e 72 69 67 |.left)-(|((r2.rig|
|00001540| 68 74 2d 72 32 2e 6c 65 | 66 74 29 2a 63 75 72 4c |ht-r2.le|ft)*curL|
|00001550| 65 76 65 6c 29 2f 6d 61 | 78 4c 65 76 65 6c 29 3b |evel)/ma|xLevel);|
|00001560| 0d 09 66 6f 72 65 43 6f | 6c 6f 72 2e 67 72 65 65 |..foreCo|lor.gree|
|00001570| 6e 20 3d 20 30 3b 0d 09 | 52 47 42 46 6f 72 65 43 |n = 0;..|RGBForeC|
|00001580| 6f 6c 6f 72 28 26 66 6f | 72 65 43 6f 6c 6f 72 29 |olor(&fo|reColor)|
|00001590| 3b 0d 09 50 61 69 6e 74 | 52 65 63 74 28 26 72 32 |;..Paint|Rect(&r2|
|000015a0| 29 3b 0d 09 52 47 42 46 | 6f 72 65 43 6f 6c 6f 72 |);..RGBF|oreColor|
|000015b0| 28 26 73 61 76 65 43 6f | 6c 6f 72 29 3b 0d 0d 09 |(&saveCo|lor);...|
|000015c0| 53 65 74 47 57 6f 72 6c | 64 28 63 75 72 50 6f 72 |SetGWorl|d(curPor|
|000015d0| 74 2c 63 75 72 44 65 76 | 69 63 65 29 3b 0d 0d 09 |t,curDev|ice);...|
|000015e0| 4d 79 43 6f 70 79 52 65 | 63 74 28 26 72 29 3b 0d |MyCopyRe|ct(&r);.|
|000015f0| 7d 0d 0d 2f 2f 20 44 69 | 73 70 6c 61 79 20 41 74 |}..// Di|splay At|
|00001600| 74 72 61 63 74 20 4d 6f | 64 65 20 53 63 72 65 65 |tract Mo|de Scree|
|00001610| 6e 0d 76 6f 69 64 20 42 | 65 67 69 6e 41 74 74 72 |n.void B|eginAttr|
|00001620| 61 63 74 28 76 6f 69 64 | 29 0d 7b 0d 09 43 47 72 |act(void|).{..CGr|
|00001630| 61 66 50 74 72 09 63 75 | 72 50 6f 72 74 3b 0d 09 |afPtr.cu|rPort;..|
|00001640| 47 44 48 61 6e 64 6c 65 | 09 63 75 72 44 65 76 69 |GDHandle|.curDevi|
|00001650| 63 65 3b 0d 09 73 74 61 | 74 69 63 20 09 09 53 74 |ce;..sta|tic ..St|
|00001660| 72 69 6e 67 50 74 72 20 | 70 72 6f 6d 70 74 53 74 |ringPtr |promptSt|
|00001670| 72 31 20 3d 20 22 5c 70 | 48 69 74 20 50 20 74 6f |r1 = "\p|Hit P to|
|00001680| 20 50 6c 61 79 22 3b 0d | 09 73 74 61 74 69 63 20 | Play";.|.static |
|00001690| 09 09 53 74 72 69 6e 67 | 50 74 72 20 70 72 6f 6d |..String|Ptr prom|
|000016a0| 70 74 53 74 72 32 20 3d | 20 22 5c 70 30 2d 37 20 |ptStr2 =| "\p0-7 |
|000016b0| 74 6f 20 63 68 61 6e 67 | 65 20 76 6f 6c 75 6d 65 |to chang|e volume|
|000016c0| 22 3b 0d 09 73 74 61 74 | 69 63 20 09 09 53 74 72 |";..stat|ic ..Str|
|000016d0| 69 6e 67 50 74 72 20 70 | 72 6f 6d 70 74 53 74 72 |ingPtr p|romptStr|
|000016e0| 33 20 3d 20 22 5c 70 4b | 20 74 6f 20 72 65 64 65 |3 = "\pK| to rede|
|000016f0| 66 69 6e 65 20 6b 65 79 | 73 22 3b 0d 0d 0d 09 47 |fine key|s";....G|
|00001700| 65 74 47 57 6f 72 6c 64 | 28 26 63 75 72 50 6f 72 |etGWorld|(&curPor|
|00001710| 74 2c 26 63 75 72 44 65 | 76 69 63 65 29 3b 0d 0d |t,&curDe|vice);..|
|00001720| 09 53 65 74 47 57 6f 72 | 6c 64 28 67 4f 66 66 53 |.SetGWor|ld(gOffS|
|00001730| 63 72 65 65 6e 2c 4e 55 | 4c 4c 29 3b 0d 09 50 61 |creen,NU|LL);..Pa|
|00001740| 69 6e 74 52 65 63 74 28 | 26 67 4f 66 66 53 63 72 |intRect(|&gOffScr|
|00001750| 65 65 6e 2d 3e 70 6f 72 | 74 52 65 63 74 29 3b 0d |een->por|tRect);.|
|00001760| 0d 09 44 69 73 70 6c 61 | 79 50 69 63 74 75 72 65 |..Displa|yPicture|
|00001770| 28 42 61 63 6b 67 72 6f | 75 6e 64 50 49 43 54 2c |(Backgro|undPICT,|
|00001780| 2d 31 2c 2d 31 29 3b 0d | 09 69 66 20 28 67 31 32 |-1,-1);.|.if (g12|
|00001790| 49 6e 63 68 4d 6f 64 65 | 29 0d 09 09 44 69 73 70 |InchMode|)...Disp|
|000017a0| 6c 61 79 50 69 63 74 75 | 72 65 28 53 6d 61 6c 6c |layPictu|re(Small|
|000017b0| 4c 6f 67 6f 50 49 43 54 | 2c 34 32 2c 34 32 29 3b |LogoPICT|,42,42);|
|000017c0| 0d 09 65 6c 73 65 0d 09 | 09 44 69 73 70 6c 61 79 |..else..|.Display|
|000017d0| 50 69 63 74 75 72 65 28 | 53 6d 61 6c 6c 4c 6f 67 |Picture(|SmallLog|
|000017e0| 6f 50 49 43 54 2c 36 34 | 2c 36 34 29 3b 0d 0d 09 |oPICT,64|,64);...|
|000017f0| 44 69 73 70 6c 61 79 54 | 6f 70 53 63 6f 72 65 73 |DisplayT|opScores|
|00001800| 28 29 3b 0d 0d 09 54 65 | 78 74 46 6f 6e 74 28 67 |();...Te|xtFont(g|
|00001810| 65 6e 65 76 61 29 3b 0d | 09 54 65 78 74 53 69 7a |eneva);.|.TextSiz|
|00001820| 65 28 31 32 29 3b 0d 09 | 54 65 78 74 46 61 63 65 |e(12);..|TextFace|
|00001830| 28 62 6f 6c 64 29 3b 0d | 09 54 65 78 74 4d 6f 64 |(bold);.|.TextMod|
|00001840| 65 28 73 72 63 42 69 63 | 29 3b 0d 0d 09 43 65 6e |e(srcBic|);...Cen|
|00001850| 74 65 72 53 74 72 69 6e | 67 28 70 72 6f 6d 70 74 |terStrin|g(prompt|
|00001860| 53 74 72 31 29 3b 09 4d | 6f 76 65 28 30 2c 67 31 |Str1);.M|ove(0,g1|
|00001870| 32 49 6e 63 68 4d 6f 64 | 65 3f 20 2d 31 36 20 3a |2InchMod|e? -16 :|
|00001880| 20 2d 33 32 29 3b 0d 09 | 44 72 61 77 53 74 72 69 | -32);..|DrawStri|
|00001890| 6e 67 28 70 72 6f 6d 70 | 74 53 74 72 31 29 3b 0d |ng(promp|tStr1);.|
|000018a0| 0d 09 43 65 6e 74 65 72 | 53 74 72 69 6e 67 28 70 |..Center|String(p|
|000018b0| 72 6f 6d 70 74 53 74 72 | 32 29 3b 09 4d 6f 76 65 |romptStr|2);.Move|
|000018c0| 28 30 2c 30 29 3b 0d 09 | 44 72 61 77 53 74 72 69 |(0,0);..|DrawStri|
|000018d0| 6e 67 28 70 72 6f 6d 70 | 74 53 74 72 32 29 3b 0d |ng(promp|tStr2);.|
|000018e0| 0d 09 43 65 6e 74 65 72 | 53 74 72 69 6e 67 28 70 |..Center|String(p|
|000018f0| 72 6f 6d 70 74 53 74 72 | 33 29 3b 09 4d 6f 76 65 |romptStr|3);.Move|
|00001900| 28 30 2c 67 31 32 49 6e | 63 68 4d 6f 64 65 3f 20 |(0,g12In|chMode? |
|00001910| 31 36 20 3a 20 33 32 29 | 3b 0d 09 44 72 61 77 53 |16 : 32)|;..DrawS|
|00001920| 74 72 69 6e 67 28 70 72 | 6f 6d 70 74 53 74 72 33 |tring(pr|omptStr3|
|00001930| 29 3b 0d 0d 09 54 65 78 | 74 4d 6f 64 65 28 73 72 |);...Tex|tMode(sr|
|00001940| 63 43 6f 70 79 29 3b 0d | 0d 0d 09 53 65 74 47 57 |cCopy);.|...SetGW|
|00001950| 6f 72 6c 64 28 63 75 72 | 50 6f 72 74 2c 63 75 72 |orld(cur|Port,cur|
|00001960| 44 65 76 69 63 65 29 3b | 0d 0d 09 47 61 6d 6d 61 |Device);|...Gamma|
|00001970| 46 61 64 65 4f 75 74 28 | 29 3b 0d 09 4d 79 43 6f |FadeOut(|);..MyCo|
|00001980| 70 79 42 69 74 73 28 29 | 3b 0d 09 47 61 6d 6d 61 |pyBits()|;..Gamma|
|00001990| 46 61 64 65 49 6e 28 29 | 3b 0d 7d 0d 0d 0d 76 6f |FadeIn()|;.}...vo|
|000019a0| 69 64 20 42 65 67 69 6e | 47 61 6d 65 28 76 6f 69 |id Begin|Game(voi|
|000019b0| 64 29 0d 7b 0d 09 73 68 | 6f 72 74 09 69 3b 0d 09 |d).{..sh|ort.i;..|
|000019c0| 43 47 72 61 66 50 74 72 | 09 09 63 75 72 50 6f 72 |CGrafPtr|..curPor|
|000019d0| 74 3b 0d 09 47 44 48 61 | 6e 64 6c 65 09 09 63 75 |t;..GDHa|ndle..cu|
|000019e0| 72 44 65 76 69 63 65 3b | 0d 09 73 68 6f 72 74 09 |rDevice;|..short.|
|000019f0| 09 09 65 4d 61 73 6b 3b | 0d 0d 09 72 65 67 69 73 |..eMask;|...regis|
|00001a00| 74 65 72 09 09 53 70 72 | 69 74 65 49 6e 73 74 61 |ter..Spr|iteInsta|
|00001a10| 6e 63 65 09 2a 73 70 3b | 0d 0d 09 67 4d 61 78 53 |nce.*sp;|...gMaxS|
|00001a20| 70 72 69 74 65 20 3d 20 | 30 3b 0d 09 67 4e 62 72 |prite = |0;..gNbr|
|00001a30| 53 61 76 65 4d 61 70 73 | 20 3d 20 30 3b 0d 09 67 |SaveMaps| = 0;..g|
|00001a40| 53 70 72 69 74 65 43 6e | 74 20 3d 20 30 3b 0d 09 |SpriteCn|t = 0;..|
|00001a50| 67 53 70 61 72 6b 43 6e | 74 20 3d 20 30 3b 0d 09 |gSparkCn|t = 0;..|
|00001a60| 67 41 73 74 65 72 6f 69 | 64 43 6e 74 20 3d 20 30 |gAsteroi|dCnt = 0|
|00001a70| 3b 0d 09 67 52 65 6d 61 | 69 6e 69 6e 67 53 68 69 |;..gRema|iningShi|
|00001a80| 70 73 20 3d 20 33 3b 0d | 09 67 47 61 6d 65 4c 65 |ps = 3;.|.gGameLe|
|00001a90| 76 65 6c 20 3d 20 30 3b | 0d 09 67 47 61 6d 65 53 |vel = 0;|..gGameS|
|00001aa0| 63 6f 72 65 20 3d 20 30 | 4c 3b 0d 09 67 53 68 69 |core = 0|L;..gShi|
|00001ab0| 65 6c 64 50 6f 77 65 72 | 20 3d 20 4d 61 78 53 68 |eldPower| = MaxSh|
|00001ac0| 69 65 6c 64 50 6f 77 65 | 72 3b 0d 0d 09 47 65 74 |ieldPowe|r;...Get|
|00001ad0| 47 57 6f 72 6c 64 28 26 | 63 75 72 50 6f 72 74 2c |GWorld(&|curPort,|
|00001ae0| 26 63 75 72 44 65 76 69 | 63 65 29 3b 0d 0d 09 53 |&curDevi|ce);...S|
|00001af0| 65 74 47 57 6f 72 6c 64 | 28 67 4f 66 66 53 63 72 |etGWorld|(gOffScr|
|00001b00| 65 65 6e 2c 4e 55 4c 4c | 29 3b 0d 0d 09 54 65 78 |een,NULL|);...Tex|
|00001b10| 74 46 6f 6e 74 28 67 65 | 6e 65 76 61 29 3b 0d 09 |tFont(ge|neva);..|
|00001b20| 54 65 78 74 53 69 7a 65 | 28 39 29 3b 0d 09 54 65 |TextSize|(9);..Te|
|00001b30| 78 74 46 61 63 65 28 30 | 29 3b 0d 09 54 65 78 74 |xtFace(0|);..Text|
|00001b40| 4d 6f 64 65 28 6e 6f 74 | 53 72 63 43 6f 70 79 29 |Mode(not|SrcCopy)|
|00001b50| 3b 0d 09 50 61 69 6e 74 | 52 65 63 74 28 26 67 4f |;..Paint|Rect(&gO|
|00001b60| 66 66 53 63 72 65 65 6e | 2d 3e 70 6f 72 74 52 65 |ffScreen|->portRe|
|00001b70| 63 74 29 3b 0d 0d 09 44 | 69 73 70 6c 61 79 50 69 |ct);...D|isplayPi|
|00001b80| 63 74 75 72 65 28 42 61 | 63 6b 67 72 6f 75 6e 64 |cture(Ba|ckground|
|00001b90| 50 49 43 54 2c 2d 31 2c | 2d 31 29 3b 0d 0d 09 53 |PICT,-1,|-1);...S|
|00001ba0| 65 74 47 57 6f 72 6c 64 | 28 63 75 72 50 6f 72 74 |etGWorld|(curPort|
|00001bb0| 2c 63 75 72 44 65 76 69 | 63 65 29 3b 0d 0d 09 49 |,curDevi|ce);...I|
|00001bc0| 6e 69 74 53 74 61 74 75 | 73 44 69 73 70 6c 61 79 |nitStatu|sDisplay|
|00001bd0| 28 29 3b 09 2f 2f 20 44 | 69 73 70 6c 61 79 20 73 |();.// D|isplay s|
|00001be0| 70 72 69 74 65 73 20 73 | 68 6f 75 6c 64 20 62 65 |prites s|hould be|
|00001bf0| 20 61 74 20 74 68 65 20 | 6c 6f 77 65 73 74 20 6c | at the |lowest l|
|00001c00| 65 76 65 6c 0d 0d 09 2f | 2f 20 4e 65 77 44 65 62 |evel.../|/ NewDeb|
|00001c10| 75 67 44 69 73 70 6c 61 | 79 28 29 3b 09 09 2f 2f |ugDispla|y();..//|
|00001c20| 20 44 65 62 75 67 20 53 | 70 72 69 74 65 73 20 4e | Debug S|prites N|
|00001c30| 65 78 74 0d 0d 09 49 6e | 69 74 4c 65 76 65 6c 28 |ext...In|itLevel(|
|00001c40| 29 3b 09 09 09 2f 2f 20 | 41 73 74 65 72 6f 69 64 |);...// |Asteroid|
|00001c50| 73 0d 0d 09 4e 65 77 53 | 68 69 70 28 29 3b 09 09 |s...NewS|hip();..|
|00001c60| 09 09 2f 2f 20 53 68 69 | 70 0d 0d 09 47 61 6d 6d |..// Shi|p...Gamm|
|00001c70| 61 46 61 64 65 4f 75 74 | 28 29 3b 0d 09 4d 79 43 |aFadeOut|();..MyC|
|00001c80| 6f 70 79 42 69 74 73 28 | 29 3b 0d 09 47 61 6d 6d |opyBits(|);..Gamm|
|00001c90| 61 46 61 64 65 49 6e 28 | 29 3b 0d 0d 09 2f 2f 20 |aFadeIn(|);...// |
|00001ca0| 44 72 61 77 20 4e 65 77 | 20 53 70 72 69 74 65 73 |Draw New| Sprites|
|00001cb0| 0d 09 66 6f 72 20 28 69 | 20 3d 20 30 2c 73 70 20 |..for (i| = 0,sp |
|00001cc0| 3d 20 73 54 61 62 6c 65 | 3b 20 69 20 3c 20 67 4d |= sTable|; i < gM|
|00001cd0| 61 78 53 70 72 69 74 65 | 3b 20 2b 2b 69 2c 2b 2b |axSprite|; ++i,++|
|00001ce0| 73 70 29 0d 09 09 28 2a | 73 44 65 66 5b 73 70 2d |sp)...(*|sDef[sp-|
|00001cf0| 3e 74 79 70 65 5d 2e 64 | 72 61 77 46 75 6e 63 29 |>type].d|rawFunc)|
|00001d00| 28 73 70 29 3b 0d 0d 09 | 65 4d 61 73 6b 20 3d 20 |(sp);...|eMask = |
|00001d10| 65 76 65 72 79 45 76 65 | 6e 74 3b 0d 09 65 4d 61 |everyEve|nt;..eMa|
|00001d20| 73 6b 20 26 3d 20 7e 6b | 65 79 55 70 4d 61 73 6b |sk &= ~k|eyUpMask|
|00001d30| 3b 0d 09 65 4d 61 73 6b | 20 26 3d 20 7e 6b 65 79 |;..eMask| &= ~key|
|00001d40| 44 6f 77 6e 4d 61 73 6b | 3b 0d 09 65 4d 61 73 6b |DownMask|;..eMask|
|00001d50| 20 26 3d 20 7e 61 75 74 | 6f 4b 65 79 4d 61 73 6b | &= ~aut|oKeyMask|
|00001d60| 3b 0d 09 53 65 74 45 76 | 65 6e 74 4d 61 73 6b 28 |;..SetEv|entMask(|
|00001d70| 65 4d 61 73 6b 29 3b 0d | 0d 09 67 47 61 6d 65 53 |eMask);.|..gGameS|
|00001d80| 74 61 74 65 20 3d 20 47 | 53 5f 50 6c 61 79 3b 0d |tate = G|S_Play;.|
|00001d90| 7d 0d 0d 76 6f 69 64 20 | 45 6e 64 47 61 6d 65 28 |}..void |EndGame(|
|00001da0| 76 6f 69 64 29 0d 7b 0d | 09 73 68 6f 72 74 09 09 |void).{.|.short..|
|00001db0| 09 65 4d 61 73 6b 3b 0d | 09 43 47 72 61 66 50 74 |.eMask;.|.CGrafPt|
|00001dc0| 72 09 09 63 75 72 50 6f | 72 74 3b 0d 09 47 44 48 |r..curPo|rt;..GDH|
|00001dd0| 61 6e 64 6c 65 09 09 63 | 75 72 44 65 76 69 63 65 |andle..c|urDevice|
|00001de0| 3b 0d 09 73 74 61 74 69 | 63 20 53 74 72 69 6e 67 |;..stati|c String|
|00001df0| 50 74 72 20 70 72 6f 6d | 70 74 53 74 72 20 3d 20 |Ptr prom|ptStr = |
|00001e00| 22 5c 70 47 61 6d 65 20 | 4f 76 65 72 22 3b 0d 09 |"\pGame |Over";..|
|00001e10| 53 70 72 69 74 65 49 6e | 73 74 61 6e 63 65 09 2a |SpriteIn|stance.*|
|00001e20| 73 70 3b 0d 09 73 68 6f | 72 74 09 09 09 69 3b 0d |sp;..sho|rt...i;.|
|00001e30| 09 6c 6f 6e 67 09 09 09 | 74 3b 0d 09 45 76 65 6e |.long...|t;..Even|
|00001e40| 74 52 65 63 6f 72 64 09 | 09 64 6d 79 45 76 65 6e |tRecord.|.dmyEven|
|00001e50| 74 3b 0d 0d 09 69 20 3d | 20 67 4d 61 78 53 70 72 |t;...i =| gMaxSpr|
|00001e60| 69 74 65 3b 0d 09 73 70 | 20 3d 20 26 73 54 61 62 |ite;..sp| = &sTab|
|00001e70| 6c 65 5b 69 2d 31 5d 3b | 0d 09 77 68 69 6c 65 20 |le[i-1];|..while |
|00001e80| 28 69 2d 2d 29 20 7b 0d | 09 09 69 66 20 28 73 70 |(i--) {.|..if (sp|
|00001e90| 2d 3e 61 63 74 69 76 65 | 29 0d 09 09 09 28 2a 73 |->active|)....(*s|
|00001ea0| 44 65 66 5b 73 70 2d 3e | 74 79 70 65 5d 2e 65 72 |Def[sp->|type].er|
|00001eb0| 61 73 65 46 75 6e 63 29 | 28 73 70 29 3b 0d 09 09 |aseFunc)|(sp);...|
|00001ec0| 2d 2d 73 70 3b 0d 09 7d | 0d 0d 09 47 65 74 47 57 |--sp;..}|...GetGW|
|00001ed0| 6f 72 6c 64 28 26 63 75 | 72 50 6f 72 74 2c 26 63 |orld(&cu|rPort,&c|
|00001ee0| 75 72 44 65 76 69 63 65 | 29 3b 0d 0d 09 53 65 74 |urDevice|);...Set|
|00001ef0| 47 57 6f 72 6c 64 28 67 | 4f 66 66 53 63 72 65 65 |GWorld(g|OffScree|
|00001f00| 6e 2c 4e 55 4c 4c 29 3b | 0d 0d 09 54 65 78 74 46 |n,NULL);|...TextF|
|00001f10| 6f 6e 74 28 67 65 6e 65 | 76 61 29 3b 0d 09 54 65 |ont(gene|va);..Te|
|00001f20| 78 74 53 69 7a 65 28 31 | 32 29 3b 0d 09 54 65 78 |xtSize(1|2);..Tex|
|00001f30| 74 46 61 63 65 28 62 6f | 6c 64 29 3b 0d 09 54 65 |tFace(bo|ld);..Te|
|00001f40| 78 74 4d 6f 64 65 28 73 | 72 63 42 69 63 29 3b 0d |xtMode(s|rcBic);.|
|00001f50| 09 43 65 6e 74 65 72 53 | 74 72 69 6e 67 28 70 72 |.CenterS|tring(pr|
|00001f60| 6f 6d 70 74 53 74 72 29 | 3b 0d 09 44 72 61 77 53 |omptStr)|;..DrawS|
|00001f70| 74 72 69 6e 67 28 70 72 | 6f 6d 70 74 53 74 72 29 |tring(pr|omptStr)|
|00001f80| 3b 0d 0d 09 53 65 74 47 | 57 6f 72 6c 64 28 63 75 |;...SetG|World(cu|
|00001f90| 72 50 6f 72 74 2c 63 75 | 72 44 65 76 69 63 65 29 |rPort,cu|rDevice)|
|00001fa0| 3b 0d 09 4d 79 43 6f 70 | 79 42 69 74 73 28 29 3b |;..MyCop|yBits();|
|00001fb0| 0d 0d 0d 09 65 4d 61 73 | 6b 20 3d 20 65 76 65 72 |....eMas|k = ever|
|00001fc0| 79 45 76 65 6e 74 3b 0d | 09 65 4d 61 73 6b 20 26 |yEvent;.|.eMask &|
|00001fd0| 3d 20 7e 6b 65 79 55 70 | 4d 61 73 6b 3b 0d 09 53 |= ~keyUp|Mask;..S|
|00001fe0| 65 74 45 76 65 6e 74 4d | 61 73 6b 28 65 4d 61 73 |etEventM|ask(eMas|
|00001ff0| 6b 29 3b 0d 09 46 6c 75 | 73 68 45 76 65 6e 74 73 |k);..Flu|shEvents|
|00002000| 28 65 76 65 72 79 45 76 | 65 6e 74 2c 20 30 29 3b |(everyEv|ent, 0);|
|00002010| 0d 0d 09 74 20 3d 20 54 | 69 63 6b 43 6f 75 6e 74 |...t = T|ickCount|
|00002020| 28 29 3b 0d 0d 09 49 6e | 74 65 67 72 61 74 65 53 |();...In|tegrateS|
|00002030| 63 6f 72 65 28 67 47 61 | 6d 65 53 63 6f 72 65 2c |core(gGa|meScore,|
|00002040| 20 67 47 61 6d 65 4c 65 | 76 65 6c 29 3b 0d 0d 09 | gGameLe|vel);...|
|00002050| 67 47 61 6d 65 53 74 61 | 74 65 20 3d 20 47 53 5f |gGameSta|te = GS_|
|00002060| 41 74 74 72 61 63 74 3b | 0d 09 77 68 69 6c 65 20 |Attract;|..while |
|00002070| 28 54 69 63 6b 43 6f 75 | 6e 74 28 29 20 2d 20 74 |(TickCou|nt() - t|
|00002080| 20 3c 20 31 38 30 4c 20 | 26 26 0d 09 09 09 21 4f | < 180L |&&....!O|
|00002090| 53 45 76 65 6e 74 41 76 | 61 69 6c 28 65 76 65 72 |SEventAv|ail(ever|
|000020a0| 79 45 76 65 6e 74 2c 20 | 26 64 6d 79 45 76 65 6e |yEvent, |&dmyEven|
|000020b0| 74 29 29 3b 0d 09 09 09 | 3b 0d 7d 0d 0d 2f 2f 20 |t));....|;.}..// |
|000020c0| 43 72 65 61 74 65 20 61 | 20 6e 65 77 20 62 61 74 |Create a| new bat|
|000020d0| 63 68 20 6f 66 20 61 73 | 74 65 72 6f 69 64 73 0d |ch of as|teroids.|
|000020e0| 76 6f 69 64 20 49 6e 69 | 74 4c 65 76 65 6c 28 76 |void Ini|tLevel(v|
|000020f0| 6f 69 64 29 0d 7b 0d 09 | 73 68 6f 72 74 09 69 2c |oid).{..|short.i,|
|00002100| 6e 3b 0d 0d 09 6e 20 3d | 20 67 47 61 6d 65 4c 65 |n;...n =| gGameLe|
|00002110| 76 65 6c 2f 32 20 2b 20 | 33 3b 0d 09 69 66 20 28 |vel/2 + |3;..if (|
|00002120| 6e 20 3e 20 32 30 29 0d | 09 09 6e 20 3d 20 32 30 |n > 20).|..n = 20|
|00002130| 3b 0d 0d 09 77 68 69 6c | 65 20 28 6e 2d 2d 29 0d |;...whil|e (n--).|
|00002140| 09 09 4e 65 77 41 73 74 | 65 72 6f 69 64 28 28 6e |..NewAst|eroid((n|
|00002150| 2b 67 47 61 6d 65 4c 65 | 76 65 6c 29 20 25 20 4e |+gGameLe|vel) % N|
|00002160| 62 72 41 73 74 65 72 6f | 69 64 73 29 3b 0d 0d 09 |brAstero|ids);...|
|00002170| 67 53 63 6f 72 65 4d 75 | 6c 74 69 70 6c 79 20 3d |gScoreMu|ltiply =|
|00002180| 20 31 3b 0d 0d 09 67 42 | 61 64 47 75 79 43 68 61 | 1;...gB|adGuyCha|
|00002190| 6e 63 65 20 3d 20 31 32 | 30 30 20 2d 20 31 30 30 |nce = 12|00 - 100|
|000021a0| 2a 28 67 47 61 6d 65 4c | 65 76 65 6c 2f 33 29 3b |*(gGameL|evel/3);|
|000021b0| 0d 0d 09 69 66 20 28 67 | 42 61 64 47 75 79 43 68 |...if (g|BadGuyCh|
|000021c0| 61 6e 63 65 20 3c 20 33 | 30 30 29 0d 09 09 67 42 |ance < 3|00)...gB|
|000021d0| 61 64 47 75 79 43 68 61 | 6e 63 65 20 3d 20 33 30 |adGuyCha|nce = 30|
|000021e0| 30 3b 0d 0d 09 67 59 75 | 6d 6d 79 43 68 61 6e 63 |0;...gYu|mmyChanc|
|000021f0| 65 20 3d 20 31 30 30 30 | 3b 0d 7d 0d 0d 2f 2f 20 |e = 1000|;.}..// |
|00002200| 4c 65 76 65 6c 20 77 61 | 73 20 63 6f 6d 70 6c 65 |Level wa|s comple|
|00002210| 74 65 64 20 73 75 63 63 | 65 73 73 66 75 6c 6c 79 |ted succ|essfully|
|00002220| 0d 76 6f 69 64 20 45 6e | 64 4c 65 76 65 6c 28 76 |.void En|dLevel(v|
|00002230| 6f 69 64 29 0d 7b 0d 09 | 2b 2b 67 47 61 6d 65 4c |oid).{..|++gGameL|
|00002240| 65 76 65 6c 3b 0d 09 41 | 64 64 53 63 6f 72 65 28 |evel;..A|ddScore(|
|00002250| 4c 65 76 65 6c 42 6f 6e | 75 73 53 63 6f 72 65 2a |LevelBon|usScore*|
|00002260| 67 47 61 6d 65 4c 65 76 | 65 6c 29 3b 0d 09 50 6c |gGameLev|el);..Pl|
|00002270| 61 79 53 6f 75 6e 64 28 | 53 5f 4c 65 76 65 6c 43 |aySound(|S_LevelC|
|00002280| 6f 6d 70 6c 65 74 69 6f | 6e 2c 20 34 29 3b 0d 7d |ompletio|n, 4);.}|
|00002290| 0d 0d 2f 2f 20 4d 61 69 | 6e 20 47 61 6d 65 20 4c |..// Mai|n Game L|
|000022a0| 6f 6f 70 0d 2f 2f 0d 76 | 6f 69 64 20 4d 61 69 6e |oop.//.v|oid Main|
|000022b0| 47 61 6d 65 4c 6f 6f 70 | 28 57 69 6e 64 6f 77 50 |GameLoop|(WindowP|
|000022c0| 74 72 20 74 68 65 57 69 | 6e 29 0d 7b 0d 09 72 65 |tr theWi|n).{..re|
|000022d0| 67 69 73 74 65 72 20 53 | 70 72 69 74 65 49 6e 73 |gister S|priteIns|
|000022e0| 74 61 6e 63 65 09 2a 73 | 70 3b 0d 09 72 65 67 69 |tance.*s|p;..regi|
|000022f0| 73 74 65 72 20 73 68 6f | 72 74 09 69 2c 6e 3b 0d |ster sho|rt.i,n;.|
|00002300| 09 72 65 67 69 73 74 65 | 72 20 6c 6f 6e 67 09 74 |.registe|r long.t|
|00002310| 3b 0d 09 73 74 61 74 69 | 63 20 45 76 65 6e 74 52 |;..stati|c EventR|
|00002320| 65 63 6f 72 64 09 64 6d | 79 45 76 65 6e 74 3b 0d |ecord.dm|yEvent;.|
|00002330| 09 52 65 63 74 09 72 3b | 0d 23 69 66 20 44 45 42 |.Rect.r;|.#if DEB|
|00002340| 55 47 47 49 4e 47 0d 09 | 76 6f 69 64 09 49 64 6c |UGGING..|void.Idl|
|00002350| 65 54 65 73 74 28 29 3b | 09 09 09 09 2f 2f 20 44 |eTest();|....// D|
|00002360| 65 62 75 67 67 69 6e 67 | 20 46 75 6e 63 74 69 6f |ebugging| Functio|
|00002370| 6e 20 75 73 65 64 20 74 | 6f 20 64 65 74 65 72 6d |n used t|o determ|
|00002380| 69 6e 65 20 43 50 55 20 | 6c 6f 61 64 20 66 6f 72 |ine CPU |load for|
|00002390| 20 70 72 6f 66 69 6c 65 | 72 0d 23 65 6e 64 69 66 | profile|r.#endif|
|000023a0| 0d 0d 23 69 66 20 5f 5f | 6f 70 74 69 6f 6e 28 70 |..#if __|option(p|
|000023b0| 72 6f 66 69 6c 65 29 09 | 09 09 2f 2f 20 36 2f 31 |rofile).|..// 6/1|
|000023c0| 35 20 4f 70 74 69 6f 6e | 61 6c 20 70 72 6f 66 69 |5 Option|al profi|
|000023d0| 6c 69 6e 67 20 73 75 70 | 70 6f 72 74 0d 09 5f 70 |ling sup|port.._p|
|000023e0| 72 6f 66 69 6c 65 20 3d | 20 31 3b 0d 23 65 6e 64 |rofile =| 1;.#end|
|000023f0| 69 66 0d 0d 09 53 65 74 | 50 6f 72 74 28 74 68 65 |if...Set|Port(the|
|00002400| 57 69 6e 29 3b 0d 0d 09 | 64 6f 20 7b 0d 09 09 74 |Win);...|do {...t|
|00002410| 20 3d 20 54 69 63 6b 73 | 3b 0d 09 0d 09 09 2f 2f | = Ticks|;.....//|
|00002420| 20 49 66 20 77 65 27 72 | 65 20 72 65 61 64 79 20 | If we'r|e ready |
|00002430| 66 6f 72 20 6e 65 78 74 | 20 66 72 61 6d 65 20 6f |for next| frame o|
|00002440| 66 20 61 6e 69 6d 61 74 | 69 6f 6e 0d 09 09 2f 2f |f animat|ion...//|
|00002450| 0d 09 09 69 66 20 28 74 | 20 2d 20 67 4c 61 73 74 |...if (t| - gLast|
|00002460| 44 69 73 70 54 69 6d 65 | 20 3e 3d 20 67 47 61 6d |DispTime| >= gGam|
|00002470| 65 43 6c 6f 63 6b 54 69 | 63 6b 73 29 20 7b 0d 09 |eClockTi|cks) {..|
|00002480| 09 09 2f 2f 20 20 55 70 | 64 61 74 65 20 74 68 65 |..// Up|date the|
|00002490| 20 67 61 6d 65 20 63 6c | 6f 63 6b 0d 09 09 09 2b | game cl|ock....+|
|000024a0| 2b 67 47 61 6d 65 43 6c | 6f 63 6b 3b 0d 09 09 09 |+gGameCl|ock;....|
|000024b0| 67 4c 61 73 74 44 69 73 | 70 54 69 6d 65 20 3d 20 |gLastDis|pTime = |
|000024c0| 74 3b 0d 09 0d 09 09 09 | 2f 2f 20 43 6f 6d 70 61 |t;......|// Compa|
|000024d0| 63 74 20 53 70 72 69 74 | 65 20 54 61 62 6c 65 20 |ct Sprit|e Table |
|000024e0| 69 66 20 6e 65 63 65 73 | 73 61 72 79 0d 09 09 09 |if neces|sary....|
|000024f0| 69 66 20 28 67 4d 61 78 | 53 70 72 69 74 65 20 3e |if (gMax|Sprite >|
|00002500| 20 32 30 20 26 26 20 67 | 4d 61 78 53 70 72 69 74 | 20 && g|MaxSprit|
|00002510| 65 20 3e 20 28 67 53 70 | 72 69 74 65 43 6e 74 3c |e > (gSp|riteCnt<|
|00002520| 3c 31 29 29 20 7b 0d 09 | 09 09 09 66 6f 72 20 28 |<1)) {..|...for (|
|00002530| 69 20 3d 20 6e 20 3d 20 | 30 3b 20 69 20 3c 20 67 |i = n = |0; i < g|
|00002540| 4d 61 78 53 70 72 69 74 | 65 3b 20 2b 2b 69 29 20 |MaxSprit|e; ++i) |
|00002550| 7b 0d 09 09 09 09 09 69 | 66 20 28 73 54 61 62 6c |{......i|f (sTabl|
|00002560| 65 5b 69 5d 2e 61 63 74 | 69 76 65 29 20 7b 0d 09 |e[i].act|ive) {..|
|00002570| 09 09 09 09 09 73 54 61 | 62 6c 65 5b 6e 5d 20 3d |.....sTa|ble[n] =|
|00002580| 20 73 54 61 62 6c 65 5b | 69 5d 3b 0d 09 09 09 09 | sTable[|i];.....|
|00002590| 09 09 69 66 20 28 73 54 | 61 62 6c 65 5b 6e 5d 2e |..if (sT|able[n].|
|000025a0| 73 61 76 65 4d 61 70 50 | 74 72 29 0d 09 09 09 09 |saveMapP|tr).....|
|000025b0| 09 09 09 73 54 61 62 6c | 65 5b 6e 5d 2e 73 61 76 |...sTabl|e[n].sav|
|000025c0| 65 4d 61 70 50 74 72 2d | 3e 73 70 20 3d 20 26 73 |eMapPtr-|>sp = &s|
|000025d0| 54 61 62 6c 65 5b 6e 5d | 3b 0d 09 09 09 09 09 09 |Table[n]|;.......|
|000025e0| 69 66 20 28 67 53 68 69 | 70 20 3d 3d 20 26 73 54 |if (gShi|p == &sT|
|000025f0| 61 62 6c 65 5b 69 5d 29 | 0d 09 09 09 09 09 09 09 |able[i])|........|
|00002600| 67 53 68 69 70 20 3d 20 | 26 73 54 61 62 6c 65 5b |gShip = |&sTable[|
|00002610| 6e 5d 3b 0d 09 09 09 09 | 09 09 2b 2b 6e 3b 0d 09 |n];.....|..++n;..|
|00002620| 09 09 09 09 7d 0d 09 09 | 09 09 7d 0d 09 09 09 09 |....}...|..}.....|
|00002630| 67 4d 61 78 53 70 72 69 | 74 65 20 3d 20 6e 3b 0d |gMaxSpri|te = n;.|
|00002640| 09 09 09 09 66 6f 72 20 | 28 69 20 3d 20 6e 20 3d |....for |(i = n =|
|00002650| 20 30 3b 20 69 20 3c 20 | 67 4e 62 72 53 61 76 65 | 0; i < |gNbrSave|
|00002660| 4d 61 70 73 3b 20 2b 2b | 69 29 20 7b 0d 09 09 09 |Maps; ++|i) {....|
|00002670| 09 09 69 66 20 28 73 6d | 54 61 62 6c 65 5b 69 5d |..if (sm|Table[i]|
|00002680| 2e 61 63 74 69 76 65 29 | 20 7b 0d 09 09 09 09 09 |.active)| {......|
|00002690| 09 73 6d 54 61 62 6c 65 | 5b 6e 5d 20 3d 20 73 6d |.smTable|[n] = sm|
|000026a0| 54 61 62 6c 65 5b 69 5d | 3b 0d 09 09 09 09 09 09 |Table[i]|;.......|
|000026b0| 73 6d 54 61 62 6c 65 5b | 6e 5d 2e 73 70 2d 3e 73 |smTable[|n].sp->s|
|000026c0| 61 76 65 4d 61 70 50 74 | 72 20 3d 20 26 73 6d 54 |aveMapPt|r = &smT|
|000026d0| 61 62 6c 65 5b 6e 5d 3b | 0d 09 09 09 09 09 09 2b |able[n];|.......+|
|000026e0| 2b 6e 3b 0d 09 09 09 09 | 09 7d 0d 09 09 09 09 7d |+n;.....|.}.....}|
|000026f0| 0d 09 09 09 09 67 4e 62 | 72 53 61 76 65 4d 61 70 |.....gNb|rSaveMap|
|00002700| 73 20 3d 20 6e 3b 0d 09 | 09 09 7d 0d 09 0d 0d 09 |s = n;..|..}.....|
|00002710| 09 09 2f 2f 20 45 72 61 | 73 65 20 61 6c 6c 20 53 |..// Era|se all S|
|00002720| 70 72 69 74 65 73 20 66 | 72 6f 6d 20 6f 66 66 73 |prites f|rom offs|
|00002730| 63 72 65 65 6e 20 67 77 | 6f 72 6c 64 0d 09 09 09 |creen gw|orld....|
|00002740| 2f 2f 20 45 61 63 68 20 | 73 70 72 69 74 65 20 68 |// Each |sprite h|
|00002750| 61 73 20 61 20 70 6f 69 | 6e 74 65 72 20 74 6f 20 |as a poi|nter to |
|00002760| 61 6e 20 65 72 61 73 65 | 20 66 75 6e 63 74 69 6f |an erase| functio|
|00002770| 6e 0d 09 09 09 2f 2f 0d | 09 09 09 69 20 3d 20 67 |n....//.|...i = g|
|00002780| 4d 61 78 53 70 72 69 74 | 65 3b 0d 09 09 09 73 70 |MaxSprit|e;....sp|
|00002790| 20 3d 20 26 73 54 61 62 | 6c 65 5b 69 2d 31 5d 3b | = &sTab|le[i-1];|
|000027a0| 0d 09 09 09 77 68 69 6c | 65 20 28 69 2d 2d 29 20 |....whil|e (i--) |
|000027b0| 7b 0d 09 09 09 09 69 66 | 20 28 73 70 2d 3e 61 63 |{.....if| (sp->ac|
|000027c0| 74 69 76 65 29 0d 09 09 | 09 09 09 28 2a 73 44 65 |tive)...|...(*sDe|
|000027d0| 66 5b 73 70 2d 3e 74 79 | 70 65 5d 2e 65 72 61 73 |f[sp->ty|pe].eras|
|000027e0| 65 46 75 6e 63 29 28 73 | 70 29 3b 0d 09 09 09 09 |eFunc)(s|p);.....|
|000027f0| 2d 2d 73 70 3b 0d 09 09 | 09 7d 0d 09 0d 0d 09 09 |--sp;...|.}......|
|00002800| 09 2f 2f 20 41 64 76 61 | 6e 63 65 20 74 6f 20 6e |.// Adva|nce to n|
|00002810| 65 78 74 20 70 6c 61 79 | 20 6c 65 76 65 6c 20 69 |ext play| level i|
|00002820| 66 20 6e 65 63 65 73 73 | 61 72 79 0d 09 09 09 69 |f necess|ary....i|
|00002830| 66 20 28 67 41 73 74 65 | 72 6f 69 64 43 6e 74 20 |f (gAste|roidCnt |
|00002840| 3d 3d 20 30 29 20 7b 0d | 09 09 09 09 45 6e 64 4c |== 0) {.|....EndL|
|00002850| 65 76 65 6c 28 29 3b 0d | 09 09 09 09 49 6e 69 74 |evel();.|....Init|
|00002860| 4c 65 76 65 6c 28 29 3b | 0d 09 09 09 7d 0d 0d 09 |Level();|....}...|
|00002870| 09 09 2f 2f 20 43 68 65 | 63 6b 20 4b 65 79 62 6f |..// Che|ck Keybo|
|00002880| 61 72 64 20 2d 20 72 65 | 73 70 6f 6e 64 20 74 6f |ard - re|spond to|
|00002890| 20 6b 65 79 73 0d 09 09 | 09 43 68 65 63 6b 4b 65 | keys...|.CheckKe|
|000028a0| 79 73 28 29 3b 0d 0d 09 | 09 09 2f 2f 20 52 61 6e |ys();...|..// Ran|
|000028b0| 64 6f 6d 20 45 76 65 6e | 74 73 20 2d 20 62 61 64 |dom Even|ts - bad|
|000028c0| 20 67 75 79 73 2c 20 79 | 75 6d 6d 69 65 73 0d 09 | guys, y|ummies..|
|000028d0| 09 09 69 66 20 28 4d 79 | 52 61 6e 64 6f 6d 28 67 |..if (My|Random(g|
|000028e0| 42 61 64 47 75 79 43 68 | 61 6e 63 65 29 20 3d 3d |BadGuyCh|ance) ==|
|000028f0| 20 30 29 20 7b 09 2f 2f | 20 31 32 30 30 20 52 61 | 0) {.//| 1200 Ra|
|00002900| 6e 64 6f 6d 20 42 61 64 | 20 47 75 79 73 0d 09 09 |ndom Bad| Guys...|
|00002910| 09 09 69 66 20 28 4d 79 | 52 61 6e 64 6f 6d 28 33 |..if (My|Random(3|
|00002920| 30 29 20 3d 3d 20 30 29 | 09 09 09 2f 2f 20 45 76 |0) == 0)|...// Ev|
|00002930| 65 72 79 20 33 30 20 6d | 69 6e 75 74 65 73 0d 09 |ery 30 m|inutes..|
|00002940| 09 09 09 09 6e 20 3d 20 | 4d 79 52 61 6e 64 6f 6d |....n = |MyRandom|
|00002950| 28 37 29 3b 09 09 09 2f | 2f 20 4c 75 63 6b 79 20 |(7);.../|/ Lucky |
|00002960| 37 21 0d 09 09 09 09 65 | 6c 73 65 0d 09 09 09 09 |7!.....e|lse.....|
|00002970| 09 6e 20 3d 20 31 3b 0d | 09 09 09 09 77 68 69 6c |.n = 1;.|....whil|
|00002980| 65 20 28 6e 2d 2d 29 20 | 7b 0d 09 09 09 09 09 73 |e (n--) |{......s|
|00002990| 77 69 74 63 68 20 28 4d | 79 52 61 6e 64 6f 6d 28 |witch (M|yRandom(|
|000029a0| 35 29 29 20 7b 0d 09 09 | 09 09 09 63 61 73 65 20 |5)) {...|...case |
|000029b0| 30 3a 0d 09 09 09 09 09 | 63 61 73 65 20 31 3a 0d |0:......|case 1:.|
|000029c0| 09 09 09 09 09 09 4e 65 | 77 53 61 75 63 65 72 28 |......Ne|wSaucer(|
|000029d0| 29 3b 0d 09 09 09 09 09 | 09 62 72 65 61 6b 3b 0d |);......|.break;.|
|000029e0| 09 09 09 09 09 63 61 73 | 65 20 32 3a 0d 09 09 09 |.....cas|e 2:....|
|000029f0| 09 09 63 61 73 65 20 33 | 3a 0d 09 09 09 09 09 09 |..case 3|:.......|
|00002a00| 4e 65 77 42 61 72 62 65 | 6c 6c 28 29 3b 0d 09 09 |NewBarbe|ll();...|
|00002a10| 09 09 09 09 62 72 65 61 | 6b 3b 0d 09 09 09 09 09 |....brea|k;......|
|00002a20| 63 61 73 65 20 34 3a 0d | 09 09 09 09 09 09 4e 65 |case 4:.|......Ne|
|00002a30| 77 43 75 62 65 28 29 3b | 0d 09 09 09 09 09 09 62 |wCube();|.......b|
|00002a40| 72 65 61 6b 3b 0d 09 09 | 09 09 09 09 0d 09 09 09 |reak;...|........|
|00002a50| 09 09 7d 0d 09 09 09 09 | 7d 0d 09 09 09 7d 0d 0d |..}.....|}....}..|
|00002a60| 09 09 09 2f 2f 20 52 61 | 6e 64 6f 6d 20 59 75 6d |...// Ra|ndom Yum|
|00002a70| 6d 69 65 73 0d 09 09 09 | 69 66 20 28 67 59 75 6d |mies....|if (gYum|
|00002a80| 6d 79 43 6e 74 20 3d 3d | 20 30 20 26 26 20 4d 79 |myCnt ==| 0 && My|
|00002a90| 52 61 6e 64 6f 6d 28 67 | 59 75 6d 6d 79 43 68 61 |Random(g|YummyCha|
|00002aa0| 6e 63 65 29 20 3d 3d 20 | 30 29 09 2f 2f 20 52 61 |nce) == |0).// Ra|
|00002ab0| 6e 64 6f 6d 20 59 75 6d | 6d 79 73 0d 09 09 09 09 |ndom Yum|mys.....|
|00002ac0| 4e 65 77 59 75 6d 6d 79 | 28 29 3b 0d 0d 09 09 09 |NewYummy|();.....|
|00002ad0| 2f 2f 20 4d 6f 76 65 20 | 53 70 72 69 74 65 73 20 |// Move |Sprites |
|00002ae0| 2d 20 75 73 69 6e 67 20 | 53 70 72 69 74 65 27 73 |- using |Sprite's|
|00002af0| 20 6d 6f 76 65 46 75 6e | 63 74 69 6f 6e 0d 09 09 | moveFun|ction...|
|00002b00| 09 2f 2f 0d 09 09 09 6e | 20 3d 20 67 4d 61 78 53 |.//....n| = gMaxS|
|00002b10| 70 72 69 74 65 3b 0d 09 | 09 09 66 6f 72 20 28 69 |prite;..|..for (i|
|00002b20| 20 3d 20 30 2c 73 70 3d | 73 54 61 62 6c 65 3b 20 | = 0,sp=|sTable; |
|00002b30| 69 20 3c 20 6e 3b 20 2b | 2b 69 2c 2b 2b 73 70 29 |i < n; +|+i,++sp)|
|00002b40| 20 7b 0d 09 09 09 09 2f | 2f 20 55 70 64 61 74 65 | {...../|/ Update|
|00002b50| 20 53 70 72 69 74 65 20 | 50 6f 73 69 74 69 6f 6e | Sprite |Position|
|00002b60| 0d 09 09 09 09 69 66 20 | 28 73 70 2d 3e 61 63 74 |.....if |(sp->act|
|00002b70| 69 76 65 29 0d 09 09 09 | 09 09 28 2a 73 44 65 66 |ive)....|..(*sDef|
|00002b80| 5b 73 70 2d 3e 74 79 70 | 65 5d 2e 6d 6f 76 65 46 |[sp->typ|e].moveF|
|00002b90| 75 6e 63 29 28 73 70 29 | 3b 0d 09 09 09 7d 0d 0d |unc)(sp)|;....}..|
|00002ba0| 09 09 09 2f 2f 20 44 72 | 61 77 20 53 70 72 69 74 |...// Dr|aw Sprit|
|00002bb0| 65 73 20 69 6e 20 4f 66 | 66 73 63 72 65 65 6e 20 |es in Of|fscreen |
|00002bc0| 47 57 6f 72 6c 64 0d 09 | 09 09 2f 2f 0d 09 09 09 |GWorld..|..//....|
|00002bd0| 6e 20 3d 20 67 4d 61 78 | 53 70 72 69 74 65 3b 0d |n = gMax|Sprite;.|
|00002be0| 09 09 09 66 6f 72 20 28 | 69 20 3d 20 30 2c 73 70 |...for (|i = 0,sp|
|00002bf0| 3d 73 54 61 62 6c 65 3b | 20 69 20 3c 20 6e 3b 20 |=sTable;| i < n; |
|00002c00| 2b 2b 69 2c 2b 2b 73 70 | 29 20 7b 0d 09 09 09 09 |++i,++sp|) {.....|
|00002c10| 2f 2f 20 52 65 6e 64 65 | 72 20 53 70 72 69 74 65 |// Rende|r Sprite|
|00002c20| 20 69 6e 20 4e 65 77 20 | 50 6f 73 69 74 69 6f 6e | in New |Position|
|00002c30| 0d 09 09 09 09 69 66 20 | 28 73 70 2d 3e 61 63 74 |.....if |(sp->act|
|00002c40| 69 76 65 29 0d 09 09 09 | 09 09 28 2a 73 44 65 66 |ive)....|..(*sDef|
|00002c50| 5b 73 70 2d 3e 74 79 70 | 65 5d 2e 64 72 61 77 46 |[sp->typ|e].drawF|
|00002c60| 75 6e 63 29 28 73 70 29 | 3b 0d 09 09 09 7d 0d 09 |unc)(sp)|;....}..|
|00002c70| 0d 09 09 09 2f 2f 20 52 | 65 6e 64 65 72 20 53 70 |....// R|ender Sp|
|00002c80| 72 69 74 65 73 20 6f 6e | 74 6f 20 4f 6e 73 63 72 |rites on|to Onscr|
|00002c90| 65 65 6e 20 76 69 64 65 | 6f 0d 09 09 09 2f 2f 0d |een vide|o....//.|
|00002ca0| 09 09 09 6e 20 3d 20 67 | 4d 61 78 53 70 72 69 74 |...n = g|MaxSprit|
|00002cb0| 65 3b 0d 09 09 09 66 6f | 72 20 28 69 20 3d 20 30 |e;....fo|r (i = 0|
|00002cc0| 2c 73 70 3d 73 54 61 62 | 6c 65 3b 20 69 20 3c 20 |,sp=sTab|le; i < |
|00002cd0| 6e 3b 20 2b 2b 69 2c 2b | 2b 73 70 29 20 7b 0d 09 |n; ++i,+|+sp) {..|
|00002ce0| 09 09 09 2f 2f 20 52 65 | 6e 64 65 72 20 53 70 72 |...// Re|nder Spr|
|00002cf0| 69 74 65 20 69 6e 20 4e | 65 77 20 50 6f 73 69 74 |ite in N|ew Posit|
|00002d00| 69 6f 6e 2c 20 69 66 20 | 69 74 20 6e 65 65 64 73 |ion, if |it needs|
|00002d10| 20 75 70 64 61 74 69 6e | 67 0d 09 09 09 09 2f 2f | updatin|g.....//|
|00002d20| 0d 09 09 09 09 69 66 20 | 28 73 70 2d 3e 75 70 64 |.....if |(sp->upd|
|00002d30| 61 74 65 29 20 7b 0d 09 | 09 09 09 09 72 65 67 69 |ate) {..|....regi|
|00002d40| 73 74 65 72 20 50 6f 69 | 6e 74 09 70 31 2c 70 32 |ster Poi|nt.p1,p2|
|00002d50| 3b 0d 0d 09 09 09 09 09 | 73 70 2d 3e 75 70 64 61 |;.......|sp->upda|
|00002d60| 74 65 20 3d 20 66 61 6c | 73 65 3b 0d 0d 09 09 09 |te = fal|se;.....|
|00002d70| 09 09 70 31 20 3d 20 73 | 70 2d 3e 6f 6c 64 50 6f |..p1 = s|p->oldPo|
|00002d80| 73 3b 0d 09 09 09 09 09 | 70 32 20 3d 20 73 70 2d |s;......|p2 = sp-|
|00002d90| 3e 70 6f 73 3b 0d 09 09 | 09 09 09 2f 2f 20 49 66 |>pos;...|...// If|
|00002da0| 20 64 69 73 74 61 6e 63 | 65 20 62 65 74 77 65 65 | distanc|e betwee|
|00002db0| 6e 20 6f 6c 64 20 61 6e | 64 20 6e 65 77 20 70 6f |n old an|d new po|
|00002dc0| 73 69 74 69 6f 6e 73 20 | 69 73 20 6c 61 72 67 65 |sitions |is large|
|00002dd0| 0d 09 09 09 09 09 2f 2f | 20 74 68 61 6e 20 73 70 |......//| than sp|
|00002de0| 72 69 74 65 20 68 61 73 | 20 63 72 6f 73 73 65 64 |rite has| crossed|
|00002df0| 20 62 6f 75 6e 64 61 72 | 69 65 73 20 66 72 6f 6d | boundar|ies from|
|00002e00| 20 6f 6e 65 20 73 69 64 | 65 20 6f 66 20 73 63 72 | one sid|e of scr|
|00002e10| 65 65 6e 0d 09 09 09 09 | 09 2f 2f 20 74 6f 20 74 |een.....|.// to t|
|00002e20| 68 65 20 6f 74 68 65 72 | 2c 20 69 6e 20 74 68 69 |he other|, in thi|
|00002e30| 73 20 63 61 73 65 20 74 | 68 65 20 70 61 72 74 20 |s case t|he part |
|00002e40| 6f 66 20 74 68 65 20 73 | 70 72 69 74 65 20 74 68 |of the s|prite th|
|00002e50| 61 74 20 77 61 73 0d 09 | 09 09 09 09 2f 2f 20 65 |at was..|....// e|
|00002e60| 72 61 73 65 64 20 69 73 | 20 6f 6e 20 74 68 65 20 |rased is| on the |
|00002e70| 6f 74 68 65 72 20 73 69 | 64 65 20 6f 66 20 74 68 |other si|de of th|
|00002e80| 65 20 73 63 72 65 65 6e | 20 61 6e 64 20 6e 65 65 |e screen| and nee|
|00002e90| 64 73 20 74 6f 0d 09 09 | 09 09 09 2f 2f 20 62 65 |ds to...|...// be|
|00002ea0| 20 64 72 61 77 6e 20 73 | 65 70 61 72 61 74 65 6c | drawn s|eparatel|
|00002eb0| 79 0d 09 09 09 09 09 2f | 2f 0d 09 09 09 09 09 69 |y....../|/......i|
|00002ec0| 66 20 28 61 62 73 28 70 | 32 2e 68 20 2d 20 70 31 |f (abs(p|2.h - p1|
|00002ed0| 2e 68 29 20 3e 20 33 32 | 30 20 7c 7c 0d 09 09 09 |.h) > 32|0 ||....|
|00002ee0| 09 09 09 61 62 73 28 70 | 32 2e 76 20 2d 20 70 31 |...abs(p|2.v - p1|
|00002ef0| 2e 76 29 20 3e 20 32 34 | 30 29 0d 09 09 09 09 09 |.v) > 24|0)......|
|00002f00| 7b 0d 09 09 09 09 09 09 | 2f 2f 20 4f 62 6a 65 63 |{.......|// Objec|
|00002f10| 74 20 68 61 73 20 63 72 | 6f 73 73 65 64 20 62 6f |t has cr|ossed bo|
|00002f20| 75 6e 64 61 72 69 65 73 | 2c 20 64 72 61 77 20 74 |undaries|, draw t|
|00002f30| 77 6f 20 73 65 70 61 72 | 61 74 65 20 72 65 63 74 |wo separ|ate rect|
|00002f40| 73 0d 09 09 09 09 09 09 | 72 2e 6c 65 66 74 20 3d |s.......|r.left =|
|00002f50| 20 70 31 2e 68 3b 0d 09 | 09 09 09 09 09 72 2e 74 | p1.h;..|.....r.t|
|00002f60| 6f 70 20 3d 20 20 70 31 | 2e 76 3b 0d 09 09 09 09 |op = p1|.v;.....|
|00002f70| 09 09 72 2e 72 69 67 68 | 74 20 3d 20 70 31 2e 68 |..r.righ|t = p1.h|
|00002f80| 2b 73 70 2d 3e 77 69 64 | 74 68 3b 0d 09 09 09 09 |+sp->wid|th;.....|
|00002f90| 09 09 72 2e 62 6f 74 74 | 6f 6d 20 3d 20 70 31 2e |..r.bott|om = p1.|
|00002fa0| 76 2b 73 70 2d 3e 77 69 | 64 74 68 3b 0d 09 09 09 |v+sp->wi|dth;....|
|00002fb0| 09 09 09 2f 2f 20 43 6c | 69 70 0d 09 09 09 09 09 |...// Cl|ip......|
|00002fc0| 09 69 66 20 28 72 2e 6c | 65 66 74 20 3c 20 49 63 |.if (r.l|eft < Ic|
|00002fd0| 6f 6e 57 69 64 74 68 29 | 0d 09 09 09 09 09 09 09 |onWidth)|........|
|00002fe0| 72 2e 6c 65 66 74 20 3d | 20 49 63 6f 6e 57 69 64 |r.left =| IconWid|
|00002ff0| 74 68 3b 0d 09 09 09 09 | 09 09 69 66 20 28 72 2e |th;.....|..if (r.|
|00003000| 74 6f 70 20 3c 20 49 63 | 6f 6e 48 65 69 67 68 74 |top < Ic|onHeight|
|00003010| 29 0d 09 09 09 09 09 09 | 09 72 2e 74 6f 70 20 3d |).......|.r.top =|
|00003020| 20 49 63 6f 6e 48 65 69 | 67 68 74 3b 0d 09 09 09 | IconHei|ght;....|
|00003030| 09 09 09 69 66 20 28 72 | 2e 72 69 67 68 74 20 3e |...if (r|.right >|
|00003040| 3d 20 67 50 6c 61 79 52 | 65 63 74 2e 72 69 67 68 |= gPlayR|ect.righ|
|00003050| 74 29 0d 09 09 09 09 09 | 09 09 72 2e 72 69 67 68 |t)......|..r.righ|
|00003060| 74 20 3d 20 67 50 6c 61 | 79 52 65 63 74 2e 72 69 |t = gPla|yRect.ri|
|00003070| 67 68 74 2d 31 3b 0d 09 | 09 09 09 09 09 69 66 20 |ght-1;..|.....if |
|00003080| 28 72 2e 62 6f 74 74 6f | 6d 20 3e 3d 20 67 50 6c |(r.botto|m >= gPl|
|00003090| 61 79 52 65 63 74 2e 62 | 6f 74 74 6f 6d 29 0d 09 |ayRect.b|ottom)..|
|000030a0| 09 09 09 09 09 09 72 2e | 62 6f 74 74 6f 6d 20 3d |......r.|bottom =|
|000030b0| 20 67 50 6c 61 79 52 65 | 63 74 2e 62 6f 74 74 6f | gPlayRe|ct.botto|
|000030c0| 6d 2d 31 3b 0d 09 09 09 | 09 09 09 69 66 20 28 72 |m-1;....|...if (r|
|000030d0| 2e 72 69 67 68 74 20 3e | 20 72 2e 6c 65 66 74 20 |.right >| r.left |
|000030e0| 26 26 20 72 2e 62 6f 74 | 74 6f 6d 20 3e 20 72 2e |&& r.bot|tom > r.|
|000030f0| 74 6f 70 29 0d 09 09 09 | 09 09 09 09 4d 79 43 6f |top)....|....MyCo|
|00003100| 70 79 52 65 63 74 28 26 | 72 29 3b 0d 09 09 09 09 |pyRect(&|r);.....|
|00003110| 09 09 72 2e 6c 65 66 74 | 20 3d 20 70 32 2e 68 3b |..r.left| = p2.h;|
|00003120| 0d 09 09 09 09 09 09 72 | 2e 74 6f 70 20 3d 20 20 |.......r|.top = |
|00003130| 70 32 2e 76 3b 0d 09 09 | 09 09 09 09 72 2e 72 69 |p2.v;...|....r.ri|
|00003140| 67 68 74 20 3d 20 70 32 | 2e 68 2b 73 70 2d 3e 77 |ght = p2|.h+sp->w|
|00003150| 69 64 74 68 3b 0d 09 09 | 09 09 09 09 72 2e 62 6f |idth;...|....r.bo|
|00003160| 74 74 6f 6d 20 3d 20 70 | 32 2e 76 2b 73 70 2d 3e |ttom = p|2.v+sp->|
|00003170| 77 69 64 74 68 3b 0d 09 | 09 09 09 09 09 2f 2f 20 |width;..|.....// |
|00003180| 43 6c 69 70 0d 09 09 09 | 09 09 09 69 66 20 28 72 |Clip....|...if (r|
|00003190| 2e 6c 65 66 74 20 3c 20 | 49 63 6f 6e 57 69 64 74 |.left < |IconWidt|
|000031a0| 68 29 0d 09 09 09 09 09 | 09 09 72 2e 6c 65 66 74 |h)......|..r.left|
|000031b0| 20 3d 20 49 63 6f 6e 57 | 69 64 74 68 3b 0d 09 09 | = IconW|idth;...|
|000031c0| 09 09 09 09 69 66 20 28 | 72 2e 74 6f 70 20 3c 20 |....if (|r.top < |
|000031d0| 49 63 6f 6e 48 65 69 67 | 68 74 29 0d 09 09 09 09 |IconHeig|ht).....|
|000031e0| 09 09 09 72 2e 74 6f 70 | 20 3d 20 49 63 6f 6e 48 |...r.top| = IconH|
|000031f0| 65 69 67 68 74 3b 0d 09 | 09 09 09 09 09 69 66 20 |eight;..|.....if |
|00003200| 28 72 2e 72 69 67 68 74 | 20 3e 3d 20 67 50 6c 61 |(r.right| >= gPla|
|00003210| 79 52 65 63 74 2e 72 69 | 67 68 74 29 0d 09 09 09 |yRect.ri|ght)....|
|00003220| 09 09 09 09 72 2e 72 69 | 67 68 74 20 3d 20 67 50 |....r.ri|ght = gP|
|00003230| 6c 61 79 52 65 63 74 2e | 72 69 67 68 74 2d 31 3b |layRect.|right-1;|
|00003240| 0d 09 09 09 09 09 09 69 | 66 20 28 72 2e 62 6f 74 |.......i|f (r.bot|
|00003250| 74 6f 6d 20 3e 3d 20 67 | 50 6c 61 79 52 65 63 74 |tom >= g|PlayRect|
|00003260| 2e 62 6f 74 74 6f 6d 29 | 0d 09 09 09 09 09 09 09 |.bottom)|........|
|00003270| 72 2e 62 6f 74 74 6f 6d | 20 3d 20 67 50 6c 61 79 |r.bottom| = gPlay|
|00003280| 52 65 63 74 2e 62 6f 74 | 74 6f 6d 2d 31 3b 0d 09 |Rect.bot|tom-1;..|
|00003290| 09 09 09 09 09 69 66 20 | 28 72 2e 72 69 67 68 74 |.....if |(r.right|
|000032a0| 20 3e 20 72 2e 6c 65 66 | 74 20 26 26 20 72 2e 62 | > r.lef|t && r.b|
|000032b0| 6f 74 74 6f 6d 20 3e 20 | 72 2e 74 6f 70 29 0d 09 |ottom > |r.top)..|
|000032c0| 09 09 09 09 09 09 4d 79 | 43 6f 70 79 52 65 63 74 |......My|CopyRect|
|000032d0| 28 26 72 29 3b 0d 09 09 | 09 09 09 7d 0d 09 09 09 |(&r);...|...}....|
|000032e0| 09 09 2f 2f 20 4f 74 68 | 65 72 77 69 73 65 2c 20 |..// Oth|erwise, |
|000032f0| 74 68 65 20 70 61 72 74 | 20 74 68 61 74 20 77 61 |the part| that wa|
|00003300| 73 20 65 72 61 73 65 64 | 20 69 73 20 6e 65 61 72 |s erased| is near|
|00003310| 62 79 0d 09 09 09 09 09 | 2f 2f 20 77 65 20 6d 65 |by......|// we me|
|00003320| 72 67 65 20 74 68 6f 73 | 65 20 74 77 6f 20 72 65 |rge thos|e two re|
|00003330| 63 74 73 20 69 6e 74 6f | 20 6f 6e 65 20 72 65 63 |cts into| one rec|
|00003340| 74 20 61 6e 64 0d 09 09 | 09 09 09 2f 2f 20 63 6f |t and...|...// co|
|00003350| 70 79 20 74 68 65 20 77 | 68 6f 6c 65 20 61 72 65 |py the w|hole are|
|00003360| 61 20 69 6e 20 6f 6e 65 | 20 70 61 73 73 0d 09 09 |a in one| pass...|
|00003370| 09 09 09 2f 2f 0d 09 09 | 09 09 09 65 6c 73 65 20 |...//...|...else |
|00003380| 7b 0d 09 09 09 09 09 09 | 2f 2f 20 4d 65 72 67 65 |{.......|// Merge|
|00003390| 20 72 65 63 74 73 20 69 | 6e 74 6f 20 63 6f 6d 70 | rects i|nto comp|
|000033a0| 6f 73 69 74 65 20 72 65 | 63 74 0d 09 09 09 09 09 |osite re|ct......|
|000033b0| 09 72 2e 6c 65 66 74 20 | 3d 20 28 70 31 2e 68 20 |.r.left |= (p1.h |
|000033c0| 3c 20 70 32 2e 68 29 3f | 20 70 31 2e 68 20 3a 20 |< p2.h)?| p1.h : |
|000033d0| 70 32 2e 68 3b 0d 09 09 | 09 09 09 09 72 2e 74 6f |p2.h;...|....r.to|
|000033e0| 70 20 3d 20 28 70 31 2e | 76 20 3c 20 70 32 2e 76 |p = (p1.|v < p2.v|
|000033f0| 29 3f 20 70 31 2e 76 20 | 3a 20 70 32 2e 76 3b 0d |)? p1.v |: p2.v;.|
|00003400| 09 09 09 09 09 09 72 2e | 72 69 67 68 74 20 3d 20 |......r.|right = |
|00003410| 28 70 31 2e 68 20 3e 20 | 70 32 2e 68 29 3f 20 70 |(p1.h > |p2.h)? p|
|00003420| 31 2e 68 20 3a 20 70 32 | 2e 68 3b 0d 09 09 09 09 |1.h : p2|.h;.....|
|00003430| 09 09 72 2e 72 69 67 68 | 74 20 2b 3d 20 73 70 2d |..r.righ|t += sp-|
|00003440| 3e 77 69 64 74 68 3b 0d | 09 09 09 09 09 09 72 2e |>width;.|......r.|
|00003450| 62 6f 74 74 6f 6d 20 3d | 20 28 70 31 2e 76 20 3e |bottom =| (p1.v >|
|00003460| 20 70 32 2e 76 29 3f 20 | 70 31 2e 76 20 3a 20 70 | p2.v)? |p1.v : p|
|00003470| 32 2e 76 3b 0d 09 09 09 | 09 09 09 72 2e 62 6f 74 |2.v;....|...r.bot|
|00003480| 74 6f 6d 20 2b 3d 20 73 | 70 2d 3e 77 69 64 74 68 |tom += s|p->width|
|00003490| 3b 0d 09 09 09 09 09 09 | 2f 2f 20 43 6c 69 70 0d |;.......|// Clip.|
|000034a0| 09 09 09 09 09 09 69 66 | 20 28 72 2e 6c 65 66 74 |......if| (r.left|
|000034b0| 20 3c 20 49 63 6f 6e 57 | 69 64 74 68 29 0d 09 09 | < IconW|idth)...|
|000034c0| 09 09 09 09 09 72 2e 6c | 65 66 74 20 3d 20 49 63 |.....r.l|eft = Ic|
|000034d0| 6f 6e 57 69 64 74 68 3b | 0d 09 09 09 09 09 09 69 |onWidth;|.......i|
|000034e0| 66 20 28 72 2e 74 6f 70 | 20 3c 20 49 63 6f 6e 48 |f (r.top| < IconH|
|000034f0| 65 69 67 68 74 29 0d 09 | 09 09 09 09 09 09 72 2e |eight)..|......r.|
|00003500| 74 6f 70 20 3d 20 49 63 | 6f 6e 48 65 69 67 68 74 |top = Ic|onHeight|
|00003510| 3b 0d 09 09 09 09 09 09 | 69 66 20 28 72 2e 72 69 |;.......|if (r.ri|
|00003520| 67 68 74 20 3e 3d 20 67 | 50 6c 61 79 52 65 63 74 |ght >= g|PlayRect|
|00003530| 2e 72 69 67 68 74 29 0d | 09 09 09 09 09 09 09 72 |.right).|.......r|
|00003540| 2e 72 69 67 68 74 20 3d | 20 67 50 6c 61 79 52 65 |.right =| gPlayRe|
|00003550| 63 74 2e 72 69 67 68 74 | 2d 31 3b 0d 09 09 09 09 |ct.right|-1;.....|
|00003560| 09 09 69 66 20 28 72 2e | 62 6f 74 74 6f 6d 20 3e |..if (r.|bottom >|
|00003570| 3d 20 67 50 6c 61 79 52 | 65 63 74 2e 62 6f 74 74 |= gPlayR|ect.bott|
|00003580| 6f 6d 29 0d 09 09 09 09 | 09 09 09 72 2e 62 6f 74 |om).....|...r.bot|
|00003590| 74 6f 6d 20 3d 20 67 50 | 6c 61 79 52 65 63 74 2e |tom = gP|layRect.|
|000035a0| 62 6f 74 74 6f 6d 2d 31 | 3b 0d 09 09 09 09 09 09 |bottom-1|;.......|
|000035b0| 69 66 20 28 72 2e 72 69 | 67 68 74 20 3e 20 72 2e |if (r.ri|ght > r.|
|000035c0| 6c 65 66 74 20 26 26 20 | 72 2e 62 6f 74 74 6f 6d |left && |r.bottom|
|000035d0| 20 3e 20 72 2e 74 6f 70 | 29 0d 09 09 09 09 09 09 | > r.top|).......|
|000035e0| 09 4d 79 43 6f 70 79 52 | 65 63 74 28 26 72 29 3b |.MyCopyR|ect(&r);|
|000035f0| 0d 09 09 09 09 09 7d 0d | 09 09 09 09 09 73 70 2d |......}.|.....sp-|
|00003600| 3e 6f 6c 64 50 6f 73 20 | 3d 20 73 70 2d 3e 70 6f |>oldPos |= sp->po|
|00003610| 73 3b 0d 09 09 09 09 7d | 0d 09 09 09 7d 0d 09 09 |s;.....}|....}...|
|00003620| 7d 0d 23 69 66 20 44 45 | 42 55 47 47 49 4e 47 0d |}.#if DE|BUGGING.|
|00003630| 09 09 2f 2f 20 54 68 69 | 73 20 64 65 62 75 67 67 |..// Thi|s debugg|
|00003640| 69 6e 67 20 66 75 6e 63 | 74 69 6f 6e 20 69 73 20 |ing func|tion is |
|00003650| 75 73 65 64 20 77 69 74 | 68 20 74 68 65 20 70 72 |used wit|h the pr|
|00003660| 6f 66 69 6c 65 72 20 74 | 6f 20 64 65 74 65 72 6d |ofiler t|o determ|
|00003670| 69 6e 65 0d 09 09 2f 2f | 20 68 6f 77 20 6d 75 63 |ine...//| how muc|
|00003680| 68 20 69 64 6c 65 20 74 | 69 6d 65 20 49 20 61 6d |h idle t|ime I am|
|00003690| 20 67 65 74 74 69 6e 67 | 20 6f 6e 20 61 20 73 6c | getting| on a sl|
|000036a0| 6f 77 20 6d 61 63 68 69 | 6e 65 0d 09 09 2f 2f 20 |ow machi|ne...// |
|000036b0| 74 68 69 73 20 77 61 73 | 20 75 73 65 64 20 74 6f |this was| used to|
|000036c0| 20 64 65 74 65 72 6d 69 | 6e 65 20 68 6f 77 20 66 | determi|ne how f|
|000036d0| 61 73 74 20 49 20 63 6f | 75 6c 64 20 6d 61 6b 65 |ast I co|uld make|
|000036e0| 20 74 68 65 20 67 61 6d | 65 20 63 6c 6f 63 6b 0d | the gam|e clock.|
|000036f0| 09 09 2f 2f 20 69 74 20 | 69 73 20 63 75 72 72 65 |..// it |is curre|
|00003700| 6e 74 6c 79 20 73 65 74 | 20 61 74 20 32 30 20 66 |ntly set| at 20 f|
|00003710| 72 61 6d 65 73 20 61 20 | 73 65 63 6f 6e 64 0d 09 |rames a |second..|
|00003720| 09 65 6c 73 65 20 7b 0d | 09 09 09 49 64 6c 65 54 |.else {.|...IdleT|
|00003730| 65 73 74 28 29 3b 0d 09 | 09 7d 0d 23 65 6e 64 69 |est();..|.}.#endi|
|00003740| 66 0d 09 2f 2f 20 4b 65 | 65 70 20 6c 6f 6f 70 69 |f..// Ke|ep loopi|
|00003750| 6e 67 20 61 73 20 6c 6f | 6e 67 20 61 73 20 67 61 |ng as lo|ng as ga|
|00003760| 6d 65 20 69 73 20 69 6e | 20 70 6c 61 79 0d 09 2f |me is in| play../|
|00003770| 2f 20 49 66 20 67 61 6d | 65 20 69 73 20 6f 76 65 |/ If gam|e is ove|
|00003780| 72 2c 20 6b 65 65 70 20 | 6c 6f 6f 70 69 6e 67 20 |r, keep |looping |
|00003790| 77 68 69 6c 65 20 74 68 | 65 72 65 20 61 72 65 20 |while th|ere are |
|000037a0| 76 69 73 69 62 6c 65 20 | 73 70 61 72 6b 73 20 66 |visible |sparks f|
|000037b0| 72 6f 6d 20 74 68 65 0d | 09 2f 2f 20 6c 61 73 74 |rom the.|.// last|
|000037c0| 20 65 78 70 6c 6f 73 69 | 6f 6e 0d 09 7d 20 77 68 | explosi|on..} wh|
|000037d0| 69 6c 65 20 28 67 47 61 | 6d 65 53 74 61 74 65 20 |ile (gGa|meState |
|000037e0| 3d 3d 20 47 53 5f 50 6c | 61 79 20 7c 7c 20 28 67 |== GS_Pl|ay || (g|
|000037f0| 47 61 6d 65 53 74 61 74 | 65 20 3d 3d 20 47 53 5f |GameStat|e == GS_|
|00003800| 47 61 6d 65 4f 76 65 72 | 20 26 26 20 67 53 70 61 |GameOver| && gSpa|
|00003810| 72 6b 43 6e 74 29 29 3b | 0d 23 69 66 20 5f 5f 6f |rkCnt));|.#if __o|
|00003820| 70 74 69 6f 6e 28 70 72 | 6f 66 69 6c 65 29 09 09 |ption(pr|ofile)..|
|00003830| 09 2f 2f 20 36 2f 31 35 | 20 4f 70 74 69 6f 6e 61 |.// 6/15| Optiona|
|00003840| 6c 20 70 72 6f 66 69 6c | 69 6e 67 20 73 75 70 70 |l profil|ing supp|
|00003850| 6f 72 74 0d 09 5f 70 72 | 6f 66 69 6c 65 20 3d 20 |ort.._pr|ofile = |
|00003860| 30 3b 0d 23 65 6e 64 69 | 66 0d 09 46 6c 75 73 68 |0;.#endi|f..Flush|
|00003870| 45 76 65 6e 74 73 28 65 | 76 65 72 79 45 76 65 6e |Events(e|veryEven|
|00003880| 74 2c 30 29 3b 0d 7d 0d | 0d 76 6f 69 64 20 49 6e |t,0);.}.|.void In|
|00003890| 69 74 53 74 61 74 75 73 | 44 69 73 70 6c 61 79 28 |itStatus|Display(|
|000038a0| 76 6f 69 64 29 0d 7b 0d | 09 72 65 67 69 73 74 65 |void).{.|.registe|
|000038b0| 72 20 53 70 72 69 74 65 | 49 6e 73 74 61 6e 63 65 |r Sprite|Instance|
|000038c0| 20 2a 73 70 3b 0d 09 69 | 66 20 28 28 73 70 20 3d | *sp;..i|f ((sp =|
|000038d0| 20 4e 65 77 53 70 72 69 | 74 65 28 66 61 6c 73 65 | NewSpri|te(false|
|000038e0| 29 29 20 3d 3d 20 4e 55 | 4c 4c 29 0d 09 09 72 65 |)) == NU|LL)...re|
|000038f0| 74 75 72 6e 3b 0d 09 73 | 70 2d 3e 74 79 70 65 20 |turn;..s|p->type |
|00003900| 3d 20 53 54 5f 53 74 61 | 74 75 73 44 69 73 70 6c |= ST_Sta|tusDispl|
|00003910| 61 79 3b 0d 09 73 70 2d | 3e 70 61 72 61 6d 31 20 |ay;..sp-|>param1 |
|00003920| 3d 20 30 3b 0d 09 73 70 | 2d 3e 70 6f 73 2e 68 20 |= 0;..sp|->pos.h |
|00003930| 3d 20 34 30 3b 0d 09 73 | 70 2d 3e 70 6f 73 2e 76 |= 40;..s|p->pos.v|
|00003940| 20 3d 20 36 34 3b 0d 09 | 73 70 2d 3e 77 69 64 74 | = 64;..|sp->widt|
|00003950| 68 20 3d 20 32 3b 0d 09 | 67 4c 61 73 74 53 63 6f |h = 2;..|gLastSco|
|00003960| 72 65 20 3d 20 2d 31 3b | 0d 09 67 4c 61 73 74 52 |re = -1;|..gLastR|
|00003970| 65 6d 61 69 6e 69 6e 67 | 53 68 69 70 73 20 3d 20 |emaining|Ships = |
|00003980| 2d 31 3b 0d 09 67 4c 61 | 73 74 4c 65 76 65 6c 20 |-1;..gLa|stLevel |
|00003990| 3d 20 2d 31 3b 0d 09 67 | 4c 61 73 74 53 63 6f 72 |= -1;..g|LastScor|
|000039a0| 65 4d 75 6c 74 69 70 6c | 79 20 3d 20 2d 31 3b 0d |eMultipl|y = -1;.|
|000039b0| 09 67 4c 61 73 74 53 68 | 69 65 6c 64 50 6f 77 65 |.gLastSh|ieldPowe|
|000039c0| 72 20 3d 20 2d 31 3b 0d | 7d 0d 0d 2f 2f 20 54 77 |r = -1;.|}..// Tw|
|000039d0| 6f 20 64 69 66 66 65 72 | 65 6e 74 20 73 65 74 73 |o differ|ent sets|
|000039e0| 20 6f 66 20 58 20 63 6f | 6f 72 64 69 6e 61 74 65 | of X co|ordinate|
|000039f0| 73 20 61 72 65 20 75 73 | 65 64 20 66 6f 72 20 74 |s are us|ed for t|
|00003a00| 68 65 20 73 74 61 74 75 | 73 20 62 61 72 0d 2f 2f |he statu|s bar.//|
|00003a10| 20 65 6c 65 6d 65 6e 74 | 73 20 64 65 70 65 6e 64 | element|s depend|
|00003a20| 69 6e 67 20 6f 6e 20 77 | 68 65 74 68 65 72 20 49 |ing on w|hether I|
|00003a30| 27 6d 20 6f 6e 20 61 20 | 31 32 20 69 6e 63 68 20 |'m on a |12 inch |
|00003a40| 6d 6f 6e 69 74 6f 72 20 | 6f 72 20 6e 6f 74 0d 0d |monitor |or not..|
|00003a50| 65 6e 75 6d 20 7b 58 53 | 63 6f 72 65 2c 20 58 4c |enum {XS|core, XL|
|00003a60| 65 76 65 6c 2c 20 58 50 | 6f 74 73 2c 20 58 4d 75 |evel, XP|ots, XMu|
|00003a70| 6c 74 69 70 6c 79 2c 20 | 58 50 61 75 73 65 2c 20 |ltiply, |XPause, |
|00003a80| 58 53 68 69 65 6c 64 73 | 7d 3b 0d 0d 73 74 61 74 |XShields|};..stat|
|00003a90| 69 63 20 73 68 6f 72 74 | 09 78 50 5b 32 5d 5b 36 |ic short|.xP[2][6|
|00003aa0| 5d 20 3d 20 7b 7b 34 30 | 2c 31 32 32 2c 32 30 32 |] = {{40|,122,202|
|00003ab0| 2c 32 38 36 2c 33 35 32 | 2c 35 32 30 7d 2c 0d 09 |,286,352|,520},..|
|00003ac0| 09 09 09 09 09 09 7b 34 | 30 2c 31 32 32 2d 33 32 |......{4|0,122-32|
|00003ad0| 2c 32 30 32 2d 33 32 2c | 32 38 36 2d 33 32 2c 33 |,202-32,|286-32,3|
|00003ae0| 35 32 2d 33 32 2c 35 32 | 30 2d 31 32 38 7d 7d 3b |52-32,52|0-128}};|
|00003af0| 0d 0d 2f 2f 20 44 72 61 | 77 20 74 68 65 20 67 61 |..// Dra|w the ga|
|00003b00| 6d 65 20 73 74 61 74 75 | 73 20 62 61 72 20 6f 6e |me statu|s bar on|
|00003b10| 20 74 6f 70 20 6f 66 20 | 74 68 65 20 73 63 72 65 | top of |the scre|
|00003b20| 65 6e 0d 2f 2f 0d 76 6f | 69 64 20 53 74 61 74 75 |en.//.vo|id Statu|
|00003b30| 73 44 72 61 77 28 72 65 | 67 69 73 74 65 72 20 53 |sDraw(re|gister S|
|00003b40| 70 72 69 74 65 49 6e 73 | 74 61 6e 63 65 20 2a 73 |priteIns|tance *s|
|00003b50| 70 29 0d 7b 0d 09 73 74 | 61 74 69 63 20 63 68 61 |p).{..st|atic cha|
|00003b60| 72 09 09 73 63 6f 72 65 | 54 65 78 74 5b 33 32 5d |r..score|Text[32]|
|00003b70| 3b 0d 09 52 65 63 74 09 | 09 09 72 3b 0d 09 72 65 |;..Rect.|..r;..re|
|00003b80| 67 69 73 74 65 72 20 73 | 68 6f 72 74 09 63 77 3b |gister s|hort.cw;|
|00003b90| 0d 0d 09 69 66 20 28 67 | 4c 61 73 74 53 63 6f 72 |...if (g|LastScor|
|00003ba0| 65 20 21 3d 20 67 47 61 | 6d 65 53 63 6f 72 65 29 |e != gGa|meScore)|
|00003bb0| 20 7b 0d 09 09 67 4c 61 | 73 74 53 63 6f 72 65 20 | {...gLa|stScore |
|00003bc0| 3d 20 67 47 61 6d 65 53 | 63 6f 72 65 3b 0d 09 09 |= gGameS|core;...|
|00003bd0| 53 74 61 74 75 73 50 72 | 69 6e 74 66 28 78 50 5b |StatusPr|intf(xP[|
|00003be0| 67 31 32 49 6e 63 68 4d | 6f 64 65 5d 5b 58 53 63 |g12InchM|ode][XSc|
|00003bf0| 6f 72 65 5d 2c 34 34 2c | 22 25 2d 31 30 6c 64 22 |ore],44,|"%-10ld"|
|00003c00| 2c 67 47 61 6d 65 53 63 | 6f 72 65 29 3b 0d 09 7d |,gGameSc|ore);..}|
|00003c10| 0d 09 69 66 20 28 67 4c | 61 73 74 4c 65 76 65 6c |..if (gL|astLevel|
|00003c20| 20 21 3d 20 67 47 61 6d | 65 4c 65 76 65 6c 29 20 | != gGam|eLevel) |
|00003c30| 7b 0d 09 09 67 4c 61 73 | 74 4c 65 76 65 6c 20 3d |{...gLas|tLevel =|
|00003c40| 20 67 47 61 6d 65 4c 65 | 76 65 6c 3b 0d 09 09 53 | gGameLe|vel;...S|
|00003c50| 74 61 74 75 73 50 72 69 | 6e 74 66 28 78 50 5b 67 |tatusPri|ntf(xP[g|
|00003c60| 31 32 49 6e 63 68 4d 6f | 64 65 5d 5b 58 4c 65 76 |12InchMo|de][XLev|
|00003c70| 65 6c 5d 2c 34 34 2c 22 | 4c 65 76 65 6c 3a 20 25 |el],44,"|Level: %|
|00003c80| 64 22 2c 20 67 47 61 6d | 65 4c 65 76 65 6c 29 3b |d", gGam|eLevel);|
|00003c90| 0d 09 7d 0d 09 69 66 20 | 28 67 4c 61 73 74 52 65 |..}..if |(gLastRe|
|00003ca0| 6d 61 69 6e 69 6e 67 53 | 68 69 70 73 20 21 3d 20 |mainingS|hips != |
|00003cb0| 67 52 65 6d 61 69 6e 69 | 6e 67 53 68 69 70 73 29 |gRemaini|ngShips)|
|00003cc0| 20 7b 0d 09 09 67 4c 61 | 73 74 52 65 6d 61 69 6e | {...gLa|stRemain|
|00003cd0| 69 6e 67 53 68 69 70 73 | 20 3d 20 67 52 65 6d 61 |ingShips| = gRema|
|00003ce0| 69 6e 69 6e 67 53 68 69 | 70 73 3b 0d 09 09 53 74 |iningShi|ps;...St|
|00003cf0| 61 74 75 73 50 72 69 6e | 74 66 28 78 50 5b 67 31 |atusPrin|tf(xP[g1|
|00003d00| 32 49 6e 63 68 4d 6f 64 | 65 5d 5b 58 50 6f 74 73 |2InchMod|e][XPots|
|00003d10| 5d 2c 34 34 2c 22 50 6f | 74 73 3a 20 25 64 22 2c |],44,"Po|ts: %d",|
|00003d20| 20 67 52 65 6d 61 69 6e | 69 6e 67 53 68 69 70 73 | gRemain|ingShips|
|00003d30| 29 3b 0d 09 7d 0d 09 69 | 66 20 28 67 4c 61 73 74 |);..}..i|f (gLast|
|00003d40| 53 63 6f 72 65 4d 75 6c | 74 69 70 6c 79 20 21 3d |ScoreMul|tiply !=|
|00003d50| 20 67 53 63 6f 72 65 4d | 75 6c 74 69 70 6c 79 29 | gScoreM|ultiply)|
|00003d60| 20 7b 0d 09 09 67 4c 61 | 73 74 53 63 6f 72 65 4d | {...gLa|stScoreM|
|00003d70| 75 6c 74 69 70 6c 79 20 | 3d 20 67 53 63 6f 72 65 |ultiply |= gScore|
|00003d80| 4d 75 6c 74 69 70 6c 79 | 3b 0d 09 09 69 66 20 28 |Multiply|;...if (|
|00003d90| 67 53 63 6f 72 65 4d 75 | 6c 74 69 70 6c 79 20 3e |gScoreMu|ltiply >|
|00003da0| 20 31 29 0d 09 09 09 53 | 74 61 74 75 73 50 72 69 | 1)....S|tatusPri|
|00003db0| 6e 74 66 28 78 50 5b 67 | 31 32 49 6e 63 68 4d 6f |ntf(xP[g|12InchMo|
|00003dc0| 64 65 5d 5b 58 4d 75 6c | 74 69 70 6c 79 5d 2c 20 |de][XMul|tiply], |
|00003dd0| 34 34 2c 22 78 25 64 20 | 20 20 20 20 22 2c 20 67 |44,"x%d | ", g|
|00003de0| 53 63 6f 72 65 4d 75 6c | 74 69 70 6c 79 29 3b 0d |ScoreMul|tiply);.|
|00003df0| 09 09 65 6c 73 65 0d 09 | 09 09 53 74 61 74 75 73 |..else..|..Status|
|00003e00| 50 72 69 6e 74 66 28 78 | 50 5b 67 31 32 49 6e 63 |Printf(x|P[g12Inc|
|00003e10| 68 4d 6f 64 65 5d 5b 58 | 4d 75 6c 74 69 70 6c 79 |hMode][X|Multiply|
|00003e20| 5d 2c 20 34 34 2c 22 20 | 20 20 20 20 20 20 20 22 |], 44," | "|
|00003e30| 2c 20 67 53 63 6f 72 65 | 4d 75 6c 74 69 70 6c 79 |, gScore|Multiply|
|00003e40| 29 3b 0d 09 7d 0d 09 69 | 66 20 28 67 4c 61 73 74 |);..}..i|f (gLast|
|00003e50| 53 68 69 65 6c 64 50 6f | 77 65 72 20 21 3d 20 67 |ShieldPo|wer != g|
|00003e60| 53 68 69 65 6c 64 50 6f | 77 65 72 29 20 7b 0d 09 |ShieldPo|wer) {..|
|00003e70| 09 52 47 42 43 6f 6c 6f | 72 09 66 63 3b 0d 09 09 |.RGBColo|r.fc;...|
|00003e80| 52 65 63 74 09 09 72 3b | 0d 09 09 43 47 72 61 66 |Rect..r;|...CGraf|
|00003e90| 50 74 72 09 09 63 75 72 | 50 6f 72 74 3b 0d 09 09 |Ptr..cur|Port;...|
|00003ea0| 47 44 48 61 6e 64 6c 65 | 09 09 63 75 72 44 65 76 |GDHandle|..curDev|
|00003eb0| 69 63 65 3b 0d 0d 09 09 | 47 65 74 47 57 6f 72 6c |ice;....|GetGWorl|
|00003ec0| 64 28 26 63 75 72 50 6f | 72 74 2c 26 63 75 72 44 |d(&curPo|rt,&curD|
|00003ed0| 65 76 69 63 65 29 3b 0d | 09 09 53 65 74 47 57 6f |evice);.|..SetGWo|
|00003ee0| 72 6c 64 28 67 4f 66 66 | 53 63 72 65 65 6e 2c 4e |rld(gOff|Screen,N|
|00003ef0| 55 4c 4c 29 3b 0d 0d 09 | 09 67 4c 61 73 74 53 68 |ULL);...|.gLastSh|
|00003f00| 69 65 6c 64 50 6f 77 65 | 72 20 3d 20 67 53 68 69 |ieldPowe|r = gShi|
|00003f10| 65 6c 64 50 6f 77 65 72 | 3b 0d 09 09 4d 6f 76 65 |eldPower|;...Move|
|00003f20| 54 6f 28 78 50 5b 67 31 | 32 49 6e 63 68 4d 6f 64 |To(xP[g1|2InchMod|
|00003f30| 65 5d 5b 58 53 68 69 65 | 6c 64 73 5d 2c 34 30 29 |e][XShie|lds],40)|
|00003f40| 3b 0d 0d 09 09 66 63 2e | 72 65 64 20 3d 20 30 78 |;....fc.|red = 0x|
|00003f50| 30 30 30 30 3b 09 66 63 | 2e 67 72 65 65 6e 20 3d |0000;.fc|.green =|
|00003f60| 20 66 63 2e 62 6c 75 65 | 20 3d 20 30 78 38 30 38 | fc.blue| = 0x808|
|00003f70| 30 3b 0d 09 09 52 47 42 | 46 6f 72 65 43 6f 6c 6f |0;...RGB|ForeColo|
|00003f80| 72 28 26 66 63 29 3b 0d | 09 09 4c 69 6e 65 28 67 |r(&fc);.|..Line(g|
|00003f90| 53 68 69 65 6c 64 50 6f | 77 65 72 2c 30 29 3b 0d |ShieldPo|wer,0);.|
|00003fa0| 0d 09 09 66 63 2e 72 65 | 64 20 3d 20 30 78 46 46 |...fc.re|d = 0xFF|
|00003fb0| 46 46 3b 09 66 63 2e 67 | 72 65 65 6e 20 3d 20 66 |FF;.fc.g|reen = f|
|00003fc0| 63 2e 62 6c 75 65 20 3d | 20 30 78 30 30 30 30 3b |c.blue =| 0x0000;|
|00003fd0| 0d 09 09 52 47 42 46 6f | 72 65 43 6f 6c 6f 72 28 |...RGBFo|reColor(|
|00003fe0| 26 66 63 29 3b 0d 09 09 | 4c 69 6e 65 28 4d 61 78 |&fc);...|Line(Max|
|00003ff0| 53 68 69 65 6c 64 50 6f | 77 65 72 2d 67 53 68 69 |ShieldPo|wer-gShi|
|00004000| 65 6c 64 50 6f 77 65 72 | 2c 30 29 3b 0d 0d 09 09 |eldPower|,0);....|
|00004010| 66 63 2e 72 65 64 20 3d | 20 66 63 2e 67 72 65 65 |fc.red =| fc.gree|
|00004020| 6e 20 3d 20 66 63 2e 62 | 6c 75 65 20 3d 20 30 78 |n = fc.b|lue = 0x|
|00004030| 30 30 30 30 3b 0d 09 09 | 52 47 42 46 6f 72 65 43 |0000;...|RGBForeC|
|00004040| 6f 6c 6f 72 28 26 66 63 | 29 3b 0d 09 09 53 65 74 |olor(&fc|);...Set|
|00004050| 52 65 63 74 28 26 72 2c | 78 50 5b 67 31 32 49 6e |Rect(&r,|xP[g12In|
|00004060| 63 68 4d 6f 64 65 5d 5b | 58 53 68 69 65 6c 64 73 |chMode][|XShields|
|00004070| 5d 2c 34 30 2c 78 50 5b | 67 31 32 49 6e 63 68 4d |],40,xP[|g12InchM|
|00004080| 6f 64 65 5d 5b 58 53 68 | 69 65 6c 64 73 5d 2b 31 |ode][XSh|ields]+1|
|00004090| 30 30 2c 34 31 29 3b 0d | 09 09 4d 79 43 6f 70 79 |00,41);.|..MyCopy|
|000040a0| 52 65 63 74 28 26 72 29 | 3b 0d 0d 09 09 53 65 74 |Rect(&r)|;....Set|
|000040b0| 47 57 6f 72 6c 64 28 63 | 75 72 50 6f 72 74 2c 63 |GWorld(c|urPort,c|
|000040c0| 75 72 44 65 76 69 63 65 | 29 3b 0d 09 7d 0d 7d 0d |urDevice|);..}.}.|
|000040d0| 0d 2f 2f 20 4b 65 65 70 | 20 74 72 61 63 6b 20 6f |.// Keep| track o|
|000040e0| 66 20 67 61 6d 65 20 73 | 63 6f 72 65 0d 2f 2f 0d |f game s|core.//.|
|000040f0| 76 6f 69 64 20 41 64 64 | 53 63 6f 72 65 28 73 68 |void Add|Score(sh|
|00004100| 6f 72 74 20 61 6d 74 29 | 0d 7b 0d 09 67 47 61 6d |ort amt)|.{..gGam|
|00004110| 65 53 63 6f 72 65 20 2b | 3d 20 61 6d 74 20 2a 20 |eScore +|= amt * |
|00004120| 28 6c 6f 6e 67 29 20 67 | 53 63 6f 72 65 4d 75 6c |(long) g|ScoreMul|
|00004130| 74 69 70 6c 79 3b 0d 09 | 69 66 20 28 67 47 61 6d |tiply;..|if (gGam|
|00004140| 65 53 63 6f 72 65 2f 35 | 30 30 30 30 4c 20 21 3d |eScore/5|0000L !=|
|00004150| 20 67 4c 61 73 74 53 63 | 6f 72 65 2f 35 30 30 30 | gLastSc|ore/5000|
|00004160| 30 29 20 7b 0d 09 09 2b | 2b 67 52 65 6d 61 69 6e |0) {...+|+gRemain|
|00004170| 69 6e 67 53 68 69 70 73 | 3b 0d 09 09 50 6c 61 79 |ingShips|;...Play|
|00004180| 53 6f 75 6e 64 28 53 5f | 45 78 74 72 61 53 68 69 |Sound(S_|ExtraShi|
|00004190| 70 2c 20 34 29 3b 0d 09 | 7d 0d 7d 0d 0d 2f 2f 20 |p, 4);..|}.}..// |
|000041a0| 50 72 69 6e 74 20 70 61 | 72 74 20 6f 66 20 74 6f |Print pa|rt of to|
|000041b0| 70 20 73 63 6f 72 65 20 | 64 69 73 70 6c 61 79 0d |p score |display.|
|000041c0| 2f 2f 0d 76 6f 69 64 20 | 50 72 69 6e 74 66 58 59 |//.void |PrintfXY|
|000041d0| 28 73 68 6f 72 74 20 78 | 2c 20 73 68 6f 72 74 20 |(short x|, short |
|000041e0| 79 2c 20 63 68 61 72 20 | 2a 74 65 6d 70 6c 61 74 |y, char |*templat|
|000041f0| 65 2c 20 2e 2e 2e 29 0d | 7b 0d 09 43 47 72 61 66 |e, ...).|{..CGraf|
|00004200| 50 74 72 09 09 63 75 72 | 50 6f 72 74 3b 0d 09 47 |Ptr..cur|Port;..G|
|00004210| 44 48 61 6e 64 6c 65 09 | 09 63 75 72 44 65 76 69 |DHandle.|.curDevi|
|00004220| 63 65 3b 0d 09 63 68 61 | 72 20 09 09 09 74 62 75 |ce;..cha|r ...tbu|
|00004230| 66 5b 31 32 38 5d 3b 0d | 09 76 61 5f 6c 69 73 74 |f[128];.|.va_list|
|00004240| 20 09 09 61 72 67 73 3b | 0d 09 52 65 63 74 09 09 | ..args;|..Rect..|
|00004250| 09 72 3b 0d 09 72 65 67 | 69 73 74 65 72 09 09 73 |.r;..reg|ister..s|
|00004260| 68 6f 72 74 20 63 77 3b | 0d 0d 09 76 61 5f 73 74 |hort cw;|...va_st|
|00004270| 61 72 74 28 61 72 67 73 | 2c 74 65 6d 70 6c 61 74 |art(args|,templat|
|00004280| 65 29 3b 0d 09 76 73 70 | 72 69 6e 74 66 28 74 62 |e);..vsp|rintf(tb|
|00004290| 75 66 2c 74 65 6d 70 6c | 61 74 65 2c 61 72 67 73 |uf,templ|ate,args|
|000042a0| 29 3b 0d 09 76 61 5f 65 | 6e 64 28 61 72 67 73 29 |);..va_e|nd(args)|
|000042b0| 3b 0d 0d 09 43 74 6f 50 | 73 74 72 28 74 62 75 66 |;...CtoP|str(tbuf|
|000042c0| 29 3b 0d 0d 09 63 77 20 | 3d 20 53 74 72 69 6e 67 |);...cw |= String|
|000042d0| 57 69 64 74 68 28 28 53 | 74 72 69 6e 67 50 74 72 |Width((S|tringPtr|
|000042e0| 29 20 74 62 75 66 29 3b | 0d 09 4d 6f 76 65 54 6f |) tbuf);|..MoveTo|
|000042f0| 28 78 2c 79 29 3b 0d 09 | 44 72 61 77 53 74 72 69 |(x,y);..|DrawStri|
|00004300| 6e 67 28 28 53 74 72 69 | 6e 67 50 74 72 29 20 74 |ng((Stri|ngPtr) t|
|00004310| 62 75 66 29 3b 0d 7d 0d | 0d 2f 2f 20 4d 6f 76 65 |buf);.}.|.// Move|
|00004320| 20 74 6f 20 74 68 65 20 | 72 69 67 68 74 20 70 6f | to the |right po|
|00004330| 73 69 74 69 6f 6e 20 74 | 6f 20 63 65 6e 74 65 72 |sition t|o center|
|00004340| 20 61 20 73 74 72 69 6e | 67 0d 2f 2f 0d 76 6f 69 | a strin|g.//.voi|
|00004350| 64 20 43 65 6e 74 65 72 | 53 74 72 69 6e 67 28 53 |d Center|String(S|
|00004360| 74 72 69 6e 67 50 74 72 | 20 73 74 72 29 0d 7b 0d |tringPtr| str).{.|
|00004370| 09 4d 6f 76 65 54 6f 28 | 28 28 67 4f 66 66 73 63 |.MoveTo(|((gOffsc|
|00004380| 72 65 65 6e 52 65 63 74 | 2e 72 69 67 68 74 20 2d |reenRect|.right -|
|00004390| 20 67 4f 66 66 73 63 72 | 65 65 6e 52 65 63 74 2e | gOffscr|eenRect.|
|000043a0| 6c 65 66 74 29 2d 53 74 | 72 69 6e 67 57 69 64 74 |left)-St|ringWidt|
|000043b0| 68 28 73 74 72 29 29 2f | 32 2c 0d 09 09 09 28 67 |h(str))/|2,....(g|
|000043c0| 4f 66 66 73 63 72 65 65 | 6e 52 65 63 74 2e 62 6f |Offscree|nRect.bo|
|000043d0| 74 74 6f 6d 20 2d 20 67 | 4f 66 66 73 63 72 65 65 |ttom - g|Offscree|
|000043e0| 6e 52 65 63 74 2e 74 6f | 70 29 2f 32 29 3b 0d 7d |nRect.to|p)/2);.}|
|000043f0| 0d 0d 2f 2f 20 50 72 69 | 6e 74 20 70 61 72 74 20 |..// Pri|nt part |
|00004400| 6f 66 20 73 74 61 74 75 | 73 20 62 61 72 20 64 69 |of statu|s bar di|
|00004410| 73 70 6c 61 79 0d 2f 2f | 0d 76 6f 69 64 20 53 74 |splay.//|.void St|
|00004420| 61 74 75 73 50 72 69 6e | 74 66 28 73 68 6f 72 74 |atusPrin|tf(short|
|00004430| 20 78 2c 20 73 68 6f 72 | 74 20 79 2c 20 63 68 61 | x, shor|t y, cha|
|00004440| 72 20 2a 74 65 6d 70 6c | 61 74 65 2c 20 2e 2e 2e |r *templ|ate, ...|
|00004450| 29 0d 7b 0d 09 43 47 72 | 61 66 50 74 72 09 09 63 |).{..CGr|afPtr..c|
|00004460| 75 72 50 6f 72 74 3b 0d | 09 47 44 48 61 6e 64 6c |urPort;.|.GDHandl|
|00004470| 65 09 09 63 75 72 44 65 | 76 69 63 65 3b 0d 09 63 |e..curDe|vice;..c|
|00004480| 68 61 72 20 09 09 09 74 | 62 75 66 5b 31 32 38 5d |har ...t|buf[128]|
|00004490| 3b 0d 09 76 61 5f 6c 69 | 73 74 20 09 09 61 72 67 |;..va_li|st ..arg|
|000044a0| 73 3b 0d 09 52 65 63 74 | 09 09 09 72 3b 0d 09 72 |s;..Rect|...r;..r|
|000044b0| 65 67 69 73 74 65 72 09 | 09 73 68 6f 72 74 20 63 |egister.|.short c|
|000044c0| 77 3b 0d 0d 09 76 61 5f | 73 74 61 72 74 28 61 72 |w;...va_|start(ar|
|000044d0| 67 73 2c 74 65 6d 70 6c | 61 74 65 29 3b 0d 09 76 |gs,templ|ate);..v|
|000044e0| 73 70 72 69 6e 74 66 28 | 74 62 75 66 2c 74 65 6d |sprintf(|tbuf,tem|
|000044f0| 70 6c 61 74 65 2c 61 72 | 67 73 29 3b 0d 09 76 61 |plate,ar|gs);..va|
|00004500| 5f 65 6e 64 28 61 72 67 | 73 29 3b 0d 0d 09 43 74 |_end(arg|s);...Ct|
|00004510| 6f 50 73 74 72 28 74 62 | 75 66 29 3b 0d 0d 09 47 |oPstr(tb|uf);...G|
|00004520| 65 74 47 57 6f 72 6c 64 | 28 26 63 75 72 50 6f 72 |etGWorld|(&curPor|
|00004530| 74 2c 26 63 75 72 44 65 | 76 69 63 65 29 3b 0d 09 |t,&curDe|vice);..|
|00004540| 53 65 74 47 57 6f 72 6c | 64 28 67 4f 66 66 53 63 |SetGWorl|d(gOffSc|
|00004550| 72 65 65 6e 2c 4e 55 4c | 4c 29 3b 0d 09 63 77 20 |reen,NUL|L);..cw |
|00004560| 3d 20 53 74 72 69 6e 67 | 57 69 64 74 68 28 28 53 |= String|Width((S|
|00004570| 74 72 69 6e 67 50 74 72 | 29 20 74 62 75 66 29 3b |tringPtr|) tbuf);|
|00004580| 0d 09 4d 6f 76 65 54 6f | 28 78 2c 79 29 3b 0d 09 |..MoveTo|(x,y);..|
|00004590| 44 72 61 77 53 74 72 69 | 6e 67 28 28 53 74 72 69 |DrawStri|ng((Stri|
|000045a0| 6e 67 50 74 72 29 20 74 | 62 75 66 29 3b 0d 09 53 |ngPtr) t|buf);..S|
|000045b0| 65 74 47 57 6f 72 6c 64 | 28 63 75 72 50 6f 72 74 |etGWorld|(curPort|
|000045c0| 2c 63 75 72 44 65 76 69 | 63 65 29 3b 0d 0d 09 72 |,curDevi|ce);...r|
|000045d0| 2e 6c 65 66 74 20 3d 20 | 78 3b 0d 09 72 2e 74 6f |.left = |x;..r.to|
|000045e0| 70 20 3d 20 79 20 2d 20 | 31 30 3b 0d 09 72 2e 72 |p = y - |10;..r.r|
|000045f0| 69 67 68 74 20 3d 20 78 | 20 2b 20 63 77 3b 0d 09 |ight = x| + cw;..|
|00004600| 72 2e 62 6f 74 74 6f 6d | 20 3d 20 79 3b 0d 0d 09 |r.bottom| = y;...|
|00004610| 4d 79 43 6f 70 79 52 65 | 63 74 28 26 72 29 3b 0d |MyCopyRe|ct(&r);.|
|00004620| 7d 0d 0d 2f 2f 20 4b 65 | 79 62 6f 61 72 64 20 68 |}..// Ke|yboard h|
|00004630| 61 6e 64 6c 69 6e 67 0d | 2f 2f 20 66 6f 72 20 73 |andling.|// for s|
|00004640| 70 65 65 64 2c 20 77 65 | 20 75 73 65 20 47 65 74 |peed, we| use Get|
|00004650| 4b 65 79 73 20 66 75 6e | 63 74 69 6f 6e 20 77 68 |Keys fun|ction wh|
|00004660| 69 63 68 20 70 6f 6c 6c | 73 20 65 6e 74 69 72 65 |ich poll|s entire|
|00004670| 20 6b 65 79 62 6f 61 72 | 64 0d 2f 2f 20 62 79 70 | keyboar|d.// byp|
|00004680| 61 73 73 69 6e 67 20 6e | 6f 72 6d 61 6c 20 57 61 |assing n|ormal Wa|
|00004690| 69 74 4e 65 78 74 45 76 | 65 6e 74 20 68 61 6e 64 |itNextEv|ent hand|
|000046a0| 6c 6e 67 0d 2f 2f 0d 2f | 2f 20 44 65 42 6f 75 6e |lng.//./|/ DeBoun|
|000046b0| 63 65 20 69 73 20 75 73 | 65 64 20 74 6f 20 70 72 |ce is us|ed to pr|
|000046c0| 65 76 65 6e 74 20 72 61 | 70 69 64 20 66 69 72 69 |event ra|pid firi|
|000046d0| 6e 67 0d 2f 2f 20 69 6e | 20 22 55 7a 69 22 20 6d |ng.// in| "Uzi" m|
|000046e0| 6f 64 65 2c 20 64 65 62 | 6f 75 6e 63 65 20 69 73 |ode, deb|ounce is|
|000046f0| 20 6c 65 73 73 20 74 6f | 20 61 6c 6c 6f 77 20 72 | less to| allow r|
|00004700| 61 70 69 64 20 66 69 72 | 69 6e 67 0d 2f 2f 0d 23 |apid fir|ing.//.#|
|00004710| 64 65 66 69 6e 65 20 44 | 65 62 6f 75 6e 63 65 09 |define D|ebounce.|
|00004720| 09 31 30 0d 23 64 65 66 | 69 6e 65 20 55 7a 69 44 |.10.#def|ine UziD|
|00004730| 65 62 6f 75 6e 63 65 09 | 09 31 0d 0d 73 68 6f 72 |ebounce.|.1..shor|
|00004740| 74 09 66 69 72 65 43 74 | 72 3d 30 3b 0d 0d 76 6f |t.fireCt|r=0;..vo|
|00004750| 69 64 20 43 68 65 63 6b | 4b 65 79 73 28 76 6f 69 |id Check|Keys(voi|
|00004760| 64 29 0d 7b 0d 09 73 74 | 61 74 69 63 20 4b 65 79 |d).{..st|atic Key|
|00004770| 4d 61 70 09 6b 6d 3b 0d | 09 72 65 67 69 73 74 65 |Map.km;.|.registe|
|00004780| 72 20 73 68 6f 72 74 09 | 66 6c 61 67 73 3b 0d 09 |r short.|flags;..|
|00004790| 65 78 74 65 72 6e 20 53 | 70 72 69 74 65 49 6e 73 |extern S|priteIns|
|000047a0| 74 61 6e 63 65 09 2a 67 | 53 68 69 70 3b 0d 0d 09 |tance.*g|Ship;...|
|000047b0| 47 65 74 4b 65 79 73 28 | 6b 6d 29 3b 0d 0d 0d 09 |GetKeys(|km);....|
|000047c0| 2f 2f 20 4e 6f 6e 20 53 | 68 69 70 20 52 65 6c 61 |// Non S|hip Rela|
|000047d0| 74 65 64 20 53 74 75 66 | 66 0d 09 2f 2f 0d 09 69 |ted Stuf|f..//..i|
|000047e0| 66 20 28 28 28 28 63 68 | 61 72 20 2a 29 20 6b 6d |f ((((ch|ar *) km|
|000047f0| 29 5b 31 5d 20 26 20 30 | 78 31 30 29 20 7c 7c 09 |)[1] & 0|x10) ||.|
|00004800| 09 2f 2f 20 30 78 30 43 | 20 51 0d 09 09 28 28 28 |.// 0x0C| Q...(((|
|00004810| 63 68 61 72 20 2a 29 20 | 6b 6d 29 5b 36 5d 20 26 |char *) |km)[6] &|
|00004820| 20 30 78 32 30 29 29 20 | 7b 09 09 2f 2f 20 30 78 | 0x20)) |{..// 0x|
|00004830| 33 35 20 45 53 43 0d 09 | 09 67 47 61 6d 65 53 74 |35 ESC..|.gGameSt|
|00004840| 61 74 65 20 3d 20 47 53 | 5f 47 61 6d 65 4f 76 65 |ate = GS|_GameOve|
|00004850| 72 3b 0d 09 7d 0d 0d 23 | 69 66 20 44 45 42 55 47 |r;..}..#|if DEBUG|
|00004860| 47 49 4e 47 0d 09 69 66 | 20 28 28 28 63 68 61 72 |GING..if| (((char|
|00004870| 20 2a 29 20 6b 6d 29 5b | 35 5d 20 26 20 30 78 30 | *) km)[|5] & 0x0|
|00004880| 34 29 20 7b 09 09 09 2f | 2f 20 30 78 32 41 20 5c |4) {.../|/ 0x2A \|
|00004890| 09 09 74 72 69 67 67 65 | 72 20 72 61 6e 64 6f 6d |..trigge|r random|
|000048a0| 20 65 76 65 6e 74 0d 09 | 09 73 77 69 74 63 68 20 | event..|.switch |
|000048b0| 28 4d 79 52 61 6e 64 6f | 6d 28 34 29 29 20 7b 0d |(MyRando|m(4)) {.|
|000048c0| 09 09 63 61 73 65 20 30 | 3a 09 4e 65 77 59 75 6d |..case 0|:.NewYum|
|000048d0| 6d 79 28 29 3b 09 09 62 | 72 65 61 6b 3b 0d 09 09 |my();..b|reak;...|
|000048e0| 63 61 73 65 20 31 3a 09 | 4e 65 77 53 61 75 63 65 |case 1:.|NewSauce|
|000048f0| 72 28 29 3b 20 09 62 72 | 65 61 6b 3b 0d 09 09 63 |r(); .br|eak;...c|
|00004900| 61 73 65 20 32 3a 20 4e | 65 77 42 61 72 62 65 6c |ase 2: N|ewBarbel|
|00004910| 6c 28 29 3b 09 62 72 65 | 61 6b 3b 0d 09 09 63 61 |l();.bre|ak;...ca|
|00004920| 73 65 20 33 3a 20 4e 65 | 77 43 75 62 65 28 29 3b |se 3: Ne|wCube();|
|00004930| 09 09 62 72 65 61 6b 3b | 0d 09 09 7d 0d 09 7d 0d |..break;|...}..}.|
|00004940| 09 69 66 20 28 28 28 63 | 68 61 72 20 2a 29 20 6b |.if (((c|har *) k|
|00004950| 6d 29 5b 36 5d 20 26 20 | 30 78 30 34 29 20 7b 09 |m)[6] & |0x04) {.|
|00004960| 09 09 2f 2f 20 30 78 33 | 32 20 7e 09 09 74 72 69 |..// 0x3|2 ~..tri|
|00004970| 67 67 65 72 20 72 61 6e | 64 6f 6d 20 65 76 65 6e |gger ran|dom even|
|00004980| 74 0d 09 09 73 77 69 74 | 63 68 20 28 4d 79 52 61 |t...swit|ch (MyRa|
|00004990| 6e 64 6f 6d 28 32 29 29 | 20 7b 0d 09 09 63 61 73 |ndom(2))| {...cas|
|000049a0| 65 20 30 3a 09 4e 65 77 | 59 75 6d 6d 79 28 29 3b |e 0:.New|Yummy();|
|000049b0| 09 09 09 09 62 72 65 61 | 6b 3b 0d 09 09 63 61 73 |....brea|k;...cas|
|000049c0| 65 20 31 3a 20 4e 65 77 | 41 73 74 65 72 6f 69 64 |e 1: New|Asteroid|
|000049d0| 28 53 54 5f 4a 69 6d 29 | 3b 09 62 72 65 61 6b 3b |(ST_Jim)|;.break;|
|000049e0| 0d 09 09 7d 0d 09 7d 0d | 23 65 6e 64 69 66 0d 0d |...}..}.|#endif..|
|000049f0| 09 69 66 20 28 28 28 63 | 68 61 72 20 2a 29 20 6b |.if (((c|har *) k|
|00004a00| 6d 29 5b 34 5d 20 26 20 | 30 78 30 38 29 20 7b 09 |m)[4] & |0x08) {.|
|00004a10| 09 09 2f 2f 20 30 78 32 | 33 20 50 0d 09 09 64 6f |..// 0x2|3 P...do|
|00004a20| 20 7b 0d 09 09 09 47 65 | 74 4b 65 79 73 28 6b 6d | {....Ge|tKeys(km|
|00004a30| 29 3b 0d 09 09 7d 20 77 | 68 69 6c 65 20 28 28 28 |);...} w|hile (((|
|00004a40| 63 68 61 72 20 2a 29 20 | 6b 6d 29 5b 34 5d 20 26 |char *) |km)[4] &|
|00004a50| 20 30 78 30 38 29 3b 09 | 2f 2f 20 57 61 69 74 20 | 0x08);.|// Wait |
|00004a60| 66 6f 72 20 4b 65 79 20 | 55 70 0d 0d 09 09 2f 2f |for Key |Up....//|
|00004a70| 20 50 72 69 6e 74 20 50 | 61 75 73 65 20 4d 65 73 | Print P|ause Mes|
|00004a80| 73 61 67 65 0d 09 09 53 | 74 61 74 75 73 50 72 69 |sage...S|tatusPri|
|00004a90| 6e 74 66 28 78 50 5b 67 | 31 32 49 6e 63 68 4d 6f |ntf(xP[g|12InchMo|
|00004aa0| 64 65 5d 5b 58 50 61 75 | 73 65 5d 2c 34 34 2c 22 |de][XPau|se],44,"|
|00004ab0| 50 41 55 53 45 22 29 3b | 0d 0d 09 09 64 6f 20 7b |PAUSE");|....do {|
|00004ac0| 0d 09 09 09 47 65 74 4b | 65 79 73 28 6b 6d 29 3b |....GetK|eys(km);|
|00004ad0| 0d 09 09 7d 20 77 68 69 | 6c 65 20 28 21 28 28 28 |...} whi|le (!(((|
|00004ae0| 63 68 61 72 20 2a 29 20 | 6b 6d 29 5b 34 5d 20 26 |char *) |km)[4] &|
|00004af0| 20 30 78 30 38 29 29 3b | 09 2f 2f 20 57 61 69 74 | 0x08));|.// Wait|
|00004b00| 20 66 6f 72 20 4b 65 79 | 20 44 6f 77 6e 0d 09 09 | for Key| Down...|
|00004b10| 64 6f 20 7b 0d 09 09 09 | 47 65 74 4b 65 79 73 28 |do {....|GetKeys(|
|00004b20| 6b 6d 29 3b 0d 09 09 7d | 20 77 68 69 6c 65 20 28 |km);...}| while (|
|00004b30| 28 28 63 68 61 72 20 2a | 29 20 6b 6d 29 5b 34 5d |((char *|) km)[4]|
|00004b40| 20 26 20 30 78 30 38 29 | 3b 09 2f 2f 20 57 61 69 | & 0x08)|;.// Wai|
|00004b50| 74 20 66 6f 72 20 4b 65 | 79 20 55 70 0d 0d 09 09 |t for Ke|y Up....|
|00004b60| 2f 2f 20 50 72 69 6e 74 | 20 55 6e 50 61 75 73 65 |// Print| UnPause|
|00004b70| 20 4d 65 73 73 61 67 65 | 0d 09 09 53 74 61 74 75 | Message|...Statu|
|00004b80| 73 50 72 69 6e 74 66 28 | 78 50 5b 67 31 32 49 6e |sPrintf(|xP[g12In|
|00004b90| 63 68 4d 6f 64 65 5d 5b | 58 50 61 75 73 65 5d 2c |chMode][|XPause],|
|00004ba0| 34 34 2c 22 20 20 20 20 | 20 20 20 20 20 20 20 20 |44," | |
|00004bb0| 20 22 29 3b 0d 09 7d 0d | 0d 09 2f 2f 20 53 68 69 | ");..}.|..// Shi|
|00004bc0| 70 20 52 65 6c 61 74 65 | 64 20 53 74 75 66 66 0d |p Relate|d Stuff.|
|00004bd0| 09 2f 2f 0d 0d 09 69 66 | 20 28 21 67 53 68 69 70 |.//...if| (!gShip|
|00004be0| 29 0d 09 09 72 65 74 75 | 72 6e 3b 0d 0d 09 66 6c |)...retu|rn;...fl|
|00004bf0| 61 67 73 20 3d 20 66 61 | 6c 73 65 3b 0d 0d 09 69 |ags = fa|lse;...i|
|00004c00| 66 20 28 28 28 63 68 61 | 72 20 2a 29 20 6b 6d 29 |f (((cha|r *) km)|
|00004c10| 5b 67 50 72 65 66 73 2e | 74 68 72 75 73 74 4b 65 |[gPrefs.|thrustKe|
|00004c20| 79 42 79 74 65 5d 20 26 | 20 67 50 72 65 66 73 2e |yByte] &| gPrefs.|
|00004c30| 74 68 72 75 73 74 4b 65 | 79 42 69 74 29 20 7b 0d |thrustKe|yBit) {.|
|00004c40| 09 09 66 6c 61 67 73 20 | 7c 3d 20 53 46 5f 54 68 |..flags ||= SF_Th|
|00004c50| 72 75 73 74 3b 0d 09 7d | 0d 0d 09 69 66 20 28 28 |rust;..}|...if ((|
|00004c60| 28 63 68 61 72 20 2a 29 | 20 6b 6d 29 5b 67 50 72 |(char *)| km)[gPr|
|00004c70| 65 66 73 2e 66 69 72 65 | 4b 65 79 42 79 74 65 5d |efs.fire|KeyByte]|
|00004c80| 20 26 20 67 50 72 65 66 | 73 2e 66 69 72 65 4b 65 | & gPref|s.fireKe|
|00004c90| 79 42 69 74 29 20 7b 0d | 09 09 69 66 20 28 66 69 |yBit) {.|..if (fi|
|00004ca0| 72 65 43 74 72 20 3d 3d | 20 30 29 20 7b 0d 09 09 |reCtr ==| 0) {...|
|00004cb0| 09 66 6c 61 67 73 20 7c | 3d 20 53 46 5f 46 69 72 |.flags ||= SF_Fir|
|00004cc0| 65 3b 0d 09 09 09 66 69 | 72 65 43 74 72 20 3d 20 |e;....fi|reCtr = |
|00004cd0| 28 28 67 53 68 69 70 4d | 6f 64 65 20 26 20 53 4d |((gShipM|ode & SM|
|00004ce0| 5f 55 7a 69 29 3f 20 55 | 7a 69 44 65 62 6f 75 6e |_Uzi)? U|ziDeboun|
|00004cf0| 63 65 20 3a 20 44 65 62 | 6f 75 6e 63 65 29 3b 0d |ce : Deb|ounce);.|
|00004d00| 09 09 7d 0d 09 09 65 6c | 73 65 0d 09 09 09 2d 2d |..}...el|se....--|
|00004d10| 66 69 72 65 43 74 72 3b | 0d 09 7d 0d 09 65 6c 73 |fireCtr;|..}..els|
|00004d20| 65 0d 09 09 66 69 72 65 | 43 74 72 20 3d 20 30 3b |e...fire|Ctr = 0;|
|00004d30| 0d 0d 09 69 66 20 28 28 | 28 63 68 61 72 20 2a 29 |...if ((|(char *)|
|00004d40| 20 6b 6d 29 5b 67 50 72 | 65 66 73 2e 6c 65 66 74 | km)[gPr|efs.left|
|00004d50| 4b 65 79 42 79 74 65 5d | 20 26 20 67 50 72 65 66 |KeyByte]| & gPref|
|00004d60| 73 2e 6c 65 66 74 4b 65 | 79 42 69 74 29 20 7b 0d |s.leftKe|yBit) {.|
|00004d70| 09 09 66 6c 61 67 73 20 | 7c 3d 20 53 46 5f 4c 65 |..flags ||= SF_Le|
|00004d80| 66 74 3b 0d 09 7d 0d 0d | 09 69 66 20 28 28 28 63 |ft;..}..|.if (((c|
|00004d90| 68 61 72 20 2a 29 20 6b | 6d 29 5b 67 50 72 65 66 |har *) k|m)[gPref|
|00004da0| 73 2e 72 69 67 68 74 4b | 65 79 42 79 74 65 5d 20 |s.rightK|eyByte] |
|00004db0| 26 20 67 50 72 65 66 73 | 2e 72 69 67 68 74 4b 65 |& gPrefs|.rightKe|
|00004dc0| 79 42 69 74 29 20 7b 0d | 09 09 66 6c 61 67 73 20 |yBit) {.|..flags |
|00004dd0| 7c 3d 20 53 46 5f 52 69 | 67 68 74 3b 0d 09 7d 0d ||= SF_Ri|ght;..}.|
|00004de0| 0d 09 69 66 20 28 28 28 | 63 68 61 72 20 2a 29 20 |..if (((|char *) |
|00004df0| 6b 6d 29 5b 67 50 72 65 | 66 73 2e 73 68 69 65 6c |km)[gPre|fs.shiel|
|00004e00| 64 4b 65 79 42 79 74 65 | 5d 20 26 20 67 50 72 65 |dKeyByte|] & gPre|
|00004e10| 66 73 2e 73 68 69 65 6c | 64 4b 65 79 42 69 74 29 |fs.shiel|dKeyBit)|
|00004e20| 20 7b 0d 09 09 69 66 20 | 28 67 53 68 69 65 6c 64 | {...if |(gShield|
|00004e30| 50 6f 77 65 72 20 3e 20 | 30 29 20 7b 0d 09 09 09 |Power > |0) {....|
|00004e40| 67 53 68 69 65 6c 64 50 | 6f 77 65 72 2d 2d 3b 09 |gShieldP|ower--;.|
|00004e50| 09 09 09 2f 2f 20 55 73 | 65 20 75 70 20 73 68 69 |...// Us|e up shi|
|00004e60| 65 6c 64 20 50 6f 77 65 | 72 0d 09 09 09 66 6c 61 |eld Powe|r....fla|
|00004e70| 67 73 20 7c 3d 20 53 46 | 5f 53 68 69 65 6c 64 3b |gs |= SF|_Shield;|
|00004e80| 0d 09 09 7d 0d 09 7d 0d | 09 65 6c 73 65 0d 09 09 |...}..}.|.else...|
|00004e90| 69 66 20 28 28 67 47 61 | 6d 65 43 6c 6f 63 6b 20 |if ((gGa|meClock |
|00004ea0| 26 20 30 78 46 46 29 20 | 3d 3d 20 30 29 09 09 2f |& 0xFF) |== 0)../|
|00004eb0| 2f 20 49 6e 63 72 65 61 | 73 65 20 53 68 69 65 6c |/ Increa|se Shiel|
|00004ec0| 64 20 50 6f 77 65 72 20 | 65 76 65 72 79 20 31 36 |d Power |every 16|
|00004ed0| 20 73 65 63 73 0d 09 09 | 09 69 66 20 28 67 53 68 | secs...|.if (gSh|
|00004ee0| 69 65 6c 64 50 6f 77 65 | 72 20 3c 20 4d 61 78 53 |ieldPowe|r < MaxS|
|00004ef0| 68 69 65 6c 64 50 6f 77 | 65 72 29 0d 09 09 09 09 |hieldPow|er).....|
|00004f00| 67 53 68 69 65 6c 64 50 | 6f 77 65 72 20 2b 3d 20 |gShieldP|ower += |
|00004f10| 35 3b 0d 0d 09 69 66 20 | 28 67 53 68 69 70 4d 6f |5;...if |(gShipMo|
|00004f20| 64 65 20 26 20 53 4d 5f | 41 75 74 6f 53 68 69 65 |de & SM_|AutoShie|
|00004f30| 6c 64 29 20 7b 0d 09 09 | 69 66 20 28 67 53 68 69 |ld) {...|if (gShi|
|00004f40| 70 20 26 26 20 67 53 68 | 69 70 2d 3e 74 69 63 6b |p && gSh|ip->tick|
|00004f50| 43 74 72 20 3e 20 34 30 | 29 0d 09 09 09 67 53 68 |Ctr > 40|)....gSh|
|00004f60| 69 70 4d 6f 64 65 20 26 | 3d 20 7e 53 4d 5f 41 75 |ipMode &|= ~SM_Au|
|00004f70| 74 6f 53 68 69 65 6c 64 | 3b 0d 09 09 65 6c 73 65 |toShield|;...else|
|00004f80| 0d 09 09 09 66 6c 61 67 | 73 20 7c 3d 20 53 46 5f |....flag|s |= SF_|
|00004f90| 53 68 69 65 6c 64 3b 0d | 09 7d 0d 0d 09 67 53 68 |Shield;.|.}...gSh|
|00004fa0| 69 70 2d 3e 70 61 72 61 | 6d 31 20 3d 20 66 6c 61 |ip->para|m1 = fla|
|00004fb0| 67 73 3b 0d 0d 7d 0d 0d | 23 69 66 20 44 45 42 55 |gs;..}..|#if DEBU|
|00004fc0| 47 47 49 4e 47 0d 76 6f | 69 64 20 49 64 6c 65 54 |GGING.vo|id IdleT|
|00004fd0| 65 73 74 28 29 0d 7b 0d | 09 73 68 6f 72 74 09 78 |est().{.|.short.x|
|00004fe0| 3b 0d 09 78 20 3d 20 30 | 3b 0d 7d 0d 23 65 6e 64 |;..x = 0|;.}.#end|
|00004ff0| 69 66 0d 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |if......|........|
|00005000| 00 00 01 00 00 00 01 c4 | 00 00 00 c4 00 00 00 66 |........|.......f|
|00005010| 1a 30 21 01 a8 03 16 4e | 10 0f 04 9d 1a 30 21 01 |.0!....N|.....0!.|
|00005020| a8 04 16 4e 10 10 04 9f | 1a 30 21 01 a8 07 16 4e |...N....|.0!....N|
|00005030| 0a 47 61 6d 65 50 6c 61 | 79 2e 63 00 02 00 00 00 |.GamePla|y.c.....|
|00005040| 54 45 58 54 4b 41 48 4c | 01 00 ff ff ff ff 00 00 |TEXTKAHL|........|
|00005050| 00 00 54 45 58 54 4b 41 | 48 4c 01 00 ff ff ff ff |..TEXTKA|HL......|
|00005060| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00005070| 00 00 a2 49 9f 1e 00 00 | 4f 73 00 00 02 2a 04 a7 |...I....|Os...*..|
|00005080| 1a 30 15 58 10 18 1a 30 | 16 4e 10 19 01 77 1a 30 |.0.X...0|.N...w.0|
|00005090| 16 4e 10 1a 04 a8 1a 30 | 21 04 20 3c 00 0c 00 08 |.N.....0|!. <....|
|000050a0| a8 00 16 4e 10 1b 04 a9 | 1a 30 21 04 20 3c 0d 00 |...N....|.0!. <..|
|000050b0| 00 08 a8 00 16 4e 10 1c | 04 aa 1a 30 21 04 20 3c |.....N..|...0!. <|
|000050c0| 02 04 00 08 a8 00 16 4e | 10 1d 04 a0 1a 30 21 04 |.......N|.....0!.|
|000050d0| 20 3c 03 08 00 08 a8 00 | 16 4e 10 1e 04 ab 1a 30 | <......|.N.....0|
|000050e0| 21 04 20 3c 00 10 00 08 | a8 00 16 4e 10 1f 04 ac |!. <....|...N....|
|000050f0| 1a 30 21 04 20 3c 00 14 | 00 08 a8 00 16 4e 10 20 |.0!. <..|.....N. |
|00005100| 00 00 00 48 00 09 4d 6f | 6e 61 63 6f 00 00 00 00 |...H..Mo|naco....|
|00005110| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00005120| 00 00 00 00 00 00 00 06 | 00 04 00 3f 00 38 01 a4 |........|...?.8..|
|00005130| 02 40 00 3f 00 38 01 a4 | 02 40 a9 a4 9f a7 00 00 |.@.?.8..|.@......|
|00005140| 0d b2 00 00 0d b9 00 00 | 0d 5e 01 00 00 00 00 46 |........|.^.....F|
|00005150| 00 03 00 10 00 00 20 84 | 01 79 00 4d 88 48 00 00 |...... .|.y.M.H..|
|00005160| 01 6e 00 1a 00 00 21 05 | 01 82 00 00 00 00 00 00 |.n....!.|........|
|00005170| 0b 67 4d 61 78 53 70 72 | 69 74 65 73 00 1a 00 00 |.gMaxSpr|ites....|
|00005180| 21 05 01 82 00 4d 88 28 | 00 00 0b 67 53 70 72 69 |!....M.(|...gSpri|
|00005190| 74 65 43 6e 74 20 00 00 | 00 2a 00 01 00 00 24 45 |teCnt ..|.*....$E|
|000051a0| 00 00 24 6d 1f 2f 2f 20 | 43 6f 6d 70 61 63 74 20 |..$m.// |Compact |
|000051b0| 53 70 72 69 74 65 20 54 | 61 62 6c 65 20 69 66 20 |Sprite T|able if |
|000051c0| 6e 65 63 c9 00 00 01 00 | 00 00 01 c4 00 00 00 c4 |nec.....|........|
|000051d0| 00 00 00 66 00 82 06 80 | 16 0a 00 00 00 1c 00 52 |...f....|.......R|
|000051e0| 00 01 4d 50 53 52 00 01 | 00 12 44 54 56 55 00 00 |..MPSR..|..DTVU..|
|000051f0| 00 2a 03 ed 00 00 00 00 | 00 00 00 82 03 f0 03 ef |.*......|........|
|00005200| ff ff 00 00 00 96 00 00 | 00 00 00 d0 ff ff 00 00 |........|........|
|00005210| 00 4c 00 00 00 00 13 43 | 72 65 61 74 65 64 20 62 |.L.....C|reated b|
|00005220| 79 20 43 4d 61 73 74 65 | 72 aa 00 00 00 00 00 00 |y CMaste|r.......|
|00005230| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00005240| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00005250| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00005260| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00005270| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
+--------+-------------------------+-------------------------+--------+--------+